Graphql Query Objects в Laravel

Итак, я сузил основы с помощью GraphQL. В моем приложении Laravel

Мой graphql возвращает ID, tenant_reference и роли, но я не могу добавить в настраиваемые атрибуты свой объект с настраиваемыми ключами, он просто возвращает ноль или, если я пытаюсь добавить ключ, он выдает ошибки.

Вот пример представления данных в формате JSON:

"data": {
"vendor_id": "b8faaf26-c8a6-3560-8357-f789f3325b0c",
"roles": [
"manager"],
"tenant_reference": "lightcoral70",
"custom_attributes": {
"fred": "test",
"one": "test2"}
}

Вот фрагмент кода:

public function fields() {
return [
'id' => [
'type' => GraphQlType::nonNull(GraphQlType::string()),
'description' => 'The id of the user',
'alias' => 'user_id', // Use 'alias', if the database column is different from the type name
],
'tenant_reference' => [
'type' => GraphQlType::nonNull(GraphQlType::string()),
'description' => 'Tenant reference this user belongs to',
'alias' => 'tenant'
],
'roles' => [
'type' => GraphQlType::listOf(GraphQlType::string()),
'description' => 'User roles'
],
'custom_attributes' => [
'type' => GraphQlType::listOf(GraphQlType::string()),
]
];
}

Вот фрагмент запроса:

protected $repository;

protected $attributes = [
'name' => 'Users query'
];

public function __construct(UserRepository $repository) {
$this->repository = $repository;
}

/**
* @return \GraphQL\Type\Definition\ListOfType|null
*/
public function type() {
return GraphQlType::listOf(GraphQL::type('user_record'));
}

/**
* Arguments we can use to filter the query
* @return array
*/
public function args() {

return [
'sub' => [
'name' => 'id',
'type' => GraphQlType::string()
],
'tenantReference' => [
'name' => 'tenantReference',
'type' => GraphQlType::string()
],
];
}

/**
*/
public function resolve($root, $args) {
return User::where([
"tenant_reference" => $args['tenantReference'],
"sub" => $args['id']
])->get();
}

Это то, чего я хочу достичь с помощью эмулятора graphiql:

Имейте в виду, что пользовательские атрибуты могут быть чем угодно. Например. я мог бы добавить еще один ключ динамически твиттер: urlhere

{
user_record(
id:"b8faaf26-c8a6-3560-8357-f789f3325b0c",
tenantReference:"lightcoral70")
{
id,
tenant_reference,
roles,
custom_attributes
fred
}
}

Это то, что он делает, используя graphiql

введите описание изображения здесь

0

Решение

используйте этот запрос на graphql

{
user_record(
id:"b8faaf26-c8a6-3560-8357-f789f3325b0c",
tenantReference:"lightcoral70")
{
id,
tenant_reference,
roles,
custom_attributes{
fred
}
}

}

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]