#graphql
#graphql
Вопрос:
Я хотел бы вставить более одной записи с использованием мутации GraphQL, но это выдает ошибку. вот код, который я использовал для этого.
input BusinessImageInput {
business_id: Int
image_url: String
}
mutation MyMutation($images: [BusinessImageInput!]) {
insert_business_images(objects: [$images]) {
affected_rows
}
}
И вот переменная, которую я хочу передать как параметр.
{"images": [
{
"business_id": 15,
"image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTVzlb1cEw8E0LeLJzk9c0OQV-N387Nt2Kn5wamp;usqp=CAU"
},
{
"business_id": 15,
"image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTVzlb1cEw8E0LeLJzk9c0OQV-N387Nt2Kn5wamp;usqp=CAU"
}
]
}
Вот ошибка
{
"errors": [
{
"extensions": {
"path": "$.query",
"code": "bad-request"
},
"message": "not a valid GraphQL query"
}
]
}
Пожалуйста, помогите мне.
Ответ №1:
В вашем коде есть одна вопиющая проблема. Эта строка
insert_business_images(objects: [$images]) {
должно быть
insert_business_images(objects: $images) {
Обратите внимание на снятые квадратные скобки.
Если это не поможет, нам понадобится дополнительная информация, например:
- какую ошибку вы получаете?
- какую реализацию GraphQL вы используете как на стороне клиента, так и на стороне сервера?
- как выглядит код GraphQL (и, возможно, преобразователи) на сервере? Вы предоставили нам только клиентскую часть уравнения.
Комментарии:
1. Я использую GraphQL API Explorer. Прилагаемые сведения об ошибке в деталях вопроса.
Ответ №2:
Это так просто, как
mutation MyMutation($images: [BusinessImageInput!]) {
insert_business_images(images: $images) {
или
mutation MyMutation($objects: [BusinessImageInput!]) {
insert_business_images(objects: $objects) {
зависит от определения мутации сервера insert_business_images
, имени аргумента ( images
или objects
?) — используйте explorer … и [как вы можете видеть выше] обычно входные аргументы и переменные имеют одинаковые имена, они отличаются только $
префиксом.
https://graphql.org/learn/queries/#variables
Также вы должны следовать типам ввода с сервера.