Неизвестная ошибка с сервера GraphQL в ответ на мутацию?

Я пытаюсь запустить мою первую мутацию GraphQL. Я использую следующие рамки:

Цель этой мутации - создать Item и вернуть все, что я желаю.

Определение мутации на стороне сервера

Таким образом, вот определение мутации на стороне сервера.

namespace App\GraphQL\Mutation\Items;

use App\Item;
use Folklore\GraphQL\Support\Mutation;
use GraphQL\Type\Definition\ResolveInfo;
use GraphQL\Type\Definition\Type;
use GraphQL;

class CreateItemMutation extends Mutation
{
    protected $attributes = [
        'name' => 'createItem',
        'description' => 'Mutation to create an item and insert it into the database.'
    ];

    public function type()
    {
        return GraphQL::type('Item');
    }

    public function args()
    {
        return [
            'description' => ['name' => 'description', 'type' => Type::nonNull(Type::string())]
        ];
    }

    public function resolve($root, $args, $context, ResolveInfo $info)
    {
        $item = new Item($args);
        return $item;
    }
}

Определение мутации на стороне клиента

Вот определение мутации на стороне клиента.

/**
 * Creates an item.
 *
 * @param {ItemCreateForm} item - The item to be created from the Item Create Form.
 *
 * @returns {Observable<Item>} - An observable resolving to the created item when returned from the server.
 */
public create(item: ItemCreateForm): Observable<Item> {
    const mutation = gql`
        mutation items($description: String!) {
            createItem(description: $description) {
                id
            }
        }
    `;

    return this.apollo.mutate({
        mutation: mutation,
        variables: {
            description: item.description
        }
    });
}

отклик

Это ошибка, которую я получаю с сервера graphql. Обратите внимание, что это 200 ОК. Я не совсем уверен, если это имеет значение.

{
    "data": {
        "createItem": null
    },
    "errors": [
        {
            "message": "description",
            "locations": [
                {
                    "line": 2,
                    "column": 3
                }
            ]
        }
    ]
}

Запрос

Вот как apollo-angular преобразует запрос.

{
    "operationName": "items",
    "variables": {
        "description": "FooBarBaz"
    },
    "query": "mutation items($description: String!) {\n  createItem(description: $description) {\n    id\n    __typename\n  }\n}\n"
}

Что именно здесь происходит не так? Ошибка, которую я получаю, не очень четкая. Хотелось бы мне больше помочь в расшифровке ошибки - я не совсем понимаю, как работают мутации на этом этапе.

0 ответов

Другие вопросы по тегам