web-dev-qa-db-fra.com

Graphql post body "Doit fournir une chaîne de requête."

J'utilise le middleware Express-graphql . J'envoie la requête suivante dans la ligne de corps:

POST /graphql HTTP/1.1
Host: local:8083
Content-Type: application/graphql
Cache-Control: no-cache
Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29

{
   testing {
      pass(id: 1) {
        idn
      }
    }
}

et avoir une erreur 

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}

dans graphql je peux envoyer la mise à jour dans l'URL.

La chaîne d'URL est trop courte. je dois envoyer le modèle de mise à jour comme

mutation {
  update(id: 2, x1: "zazaza", x2: "zazaza", x3: "zazaza" ...(more more fields)...) {
    idn
  }
}

je pense que son doit être dans le corps de la demande. Comment puis-je envoyer une requête 'update' ou que je me trompe?

20
Gopard

La demande de publication doit gérer les informations d'en-tête.

  1. Utilisation du client HTTP: application de type contenu/json

  2. Utilisation du client Postman: application de type contenu/graphql

mais le corps de la requête ressemble à une chaîne

{"query":"mutation{update(id:1,x1:\"zazaz\",x2:\"zazaz\"......){id x1 x2}}"}
32
Gopard

Si vous utilisez graphql et souhaitez le tester en utilisant postman ou tout autre client Rest, faites-le.

Dans postman, sélectionnez la méthode POST et entrez votre URL et définissez Content-Type en tant que application/graphql, puis transmettez votre requête dans le corps.

Exemple:

http://localhost:8080/graphql
Mehtod: POST
Content-Type: application/graphql
Body: 
  query{
    FindAllGames{
    _id
    title
    company
    price
    year
    url
   }
 }

Thats it vous obtiendrez la réponse.

 enter image description here

6
Prasanth Jaya

Basculez le type de contenu sur JSON. Comme ceci voir l'image de Postman

0
user10334760