91 votes

Comment envoyer une requête graphql par postman ?

Yo uso

POST type
URL http://######/graphql
Body: 
query: "query: "{'noteTypes':  {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"

Mais il revient "message" : "Doit fournir une chaîne de requête."

145voto

p0k8_ Points 3951

Il existe un meilleur moyen de le faire en utilisant le client REST. Insomnie

Les docs sont ici, comment envoyer des requêtes graphql : https://support.insomnia.rest/article/61-graphql


Voici les étapes à suivre pour postman

Étape 1.

Exécutez GraphiQL dans Chrome, ouvrez la console Dev de Chrome, cliquez sur l'onglet Réseau, et faites la requête de graphiql, quand vous faites la requête, l'onglet réseau montrera la requête graphql...

enter image description here

Étape 2.

De la graphql copier la requête de la demande, Sélectionner le Copy as cURL (cmd)

enter image description here

Étape 3.

Ouvrez Postman, dans le coin supérieur gauche, cliquez sur le bouton Import après avoir cliqué sur Import vous devez cliquer sur le bouton Paste Raw Text et coller le copié cURL comme indiqué dans l'étape 2, après avoir cliqué sur le bouton Import

enter image description here

Étape 4.

Postman est prêt à envoyer la requête Graphql, cliquez simplement sur le bouton Send Bouton, vous verrez le Response dans la boîte de réponse du corps comme ci-dessous

enter image description here

Étape 5.

Pour voir comment la requête est envoyée, cliquez sur l'onglet Body à côté de Headers vous apprendrez comment fournir les champs de postman au format JSON.

par exemple edges {\n node {\n id\n jobId\n }\n Si vous souhaitez afficher un autre champ, vous devez l'ajouter en ajoutant le suffixe suivant \n

comme si c'était nécessaire name alors : edges {\n node {\n id\n jobId\n name\n }\n

\n signifie ici simplement représenter une nouvelle ligne. Au lieu de cela, vous pouvez le rendre plus simple en fournissant un JSON clair et illustratif comme ci-dessous

\===========================================================================

Nota : Le type de corps doit être brut avec application/json content-type. Ainsi, la requête doit être un JSON valide avec des guillemets ".."

{  
   "query":"{viewer {user {edges {node {id jobId name }}}}}"
}

\===========================================================================

enter image description here

vous pouvez commencer directement à partir de step 5 si vous savez comment envoyer la requête dans le corps et d'autres choses aussi qui doivent être exigées tout en faisant une demande de postman

enter image description here

Avec un JSON simplifié

enter image description here

1 votes

Incroyable ! Incroyable !

0 votes

Vraiment postman n'est pas utile pour graphql, nous avons besoin d'un graphiql avec des écrans postman

0 votes

Génial, merci pour votre sommeil.

52voto

Estevão Lucas Points 1621

Vous n'avez pas besoin d'INSOMNIA dans le cas où le serveur GraphQL répond à Content-type: application/graphql o postman.setEnvironmentVariable ,

Fais-le :

Dans l'onglet En-têtes : Content-Type: application/graphql

Dans l'onglet Corps, "brut" sélectionné, mettez votre requête

enter image description here

0 votes

J'obtiens "No query string was present" en essayant ceci

1 votes

Cela fonctionne parfaitement pour moi ! J'utilise Node.js avec les dépendances express et express-graphql.

26voto

craig.kaminsky Points 3341

Ajoutons ceci pour tous ceux qui font des recherches sur le sujet ... vous pouvez utiliser et tester les appels GraphQL bien mieux et plus facilement avec Insomnia :

https://insomnia.rest

Il a été fantastique pour le développement de GraphQL.

3 votes

Merci ! Voici le document concernant GraphQL : support.insomnie.repos/article/61-graphql

20voto

Tomasz Points 1678

Il existe un moyen simple de le faire. Utilisez une pré-demande script pour stringifier la charge utile ( source ).

Étape 1.

Dans le corps de la demande, mettez un espace pour la charge utile.

{
    "query":{{query}}
}

Étape 2.

Créer la charge utile dans la pré-demande script et la stocker dans une variable d'environnement.

postman.setEnvironmentVariable("query", JSON.stringify(
`
{
  search(query: "test", type: ISSUE, first: 10) {
    issueCount
    edges {
      node {
        ... on Issue {
          title
          id
          state
          closed
          repository {
            name
          }
        }
      }
    }
  }
}
`
));

C'est tout.

4 votes

Cela fonctionne comme un charme et évite de passer par le tracas de toutes les étapes manuelles décrites dans les réponses précédentes ! Merci.

0 votes

Nous devons utiliser une ancienne version de graphql ou avoir une configuration spécifique mais cela a finalement fonctionné avec la proposition ci-dessus et un petit changement "body" au lieu de "query" : > placeholder > { > "body":{{query}} > }

11voto

stackdave Points 1928

UPDATE 2 :

Il n'est pas pratique d'utiliser POSTMAN, parce qu'ils travaillent encore dans un moyen facile d'ajouter des en-têtes, qui prennent du temps, et je pense que POSTMAN n'est pas fait pour travailler naturellement avec graphql,

vous pouvez suivre l'évolution de la situation ici : https://github.com/postmanlabs/postman-app-support/issues/1669

Je vous recommande d'utiliser un autre plugin de forfaits comme :

the best (like postman , but profile and sync price 5$ monthly):
   https://insomnia.rest/
others:
   https://github.com/andev-software/graphql-ide
   https://github.com/imolorhe

pour graphiql (sans possibilité d'ajouter des en-têtes) vous devez définir trois choses (ce n'est pas facile à taper) :

  1. En-tête :

    Content-Type : application/json

  2. Corps :

    Choisissez le rayon < groupe d'options

    Choisissez JSON (application/json) < selectbox

  3. Composez un objet javascript avec "query" et la "valeur" de votre requête graphique. Comme tous les objets en js, il s'agit d'une propriété et d'une valeur, dans ce cas "quote" est la propriété, la valeur doit être entre guillemets. A l'intérieur de la valeur (chaîne graphique) vous ne composez pas d'objets js, donc vous n'avez pas besoin d'utiliser des guillemets doubles, c'est juste une chaîne.

    {"query" :"{ allQuotes { texte } }" }

    le problème est que vous devez taper tout dans une seule ligne, pas comme grapIql... il y a une exigence post dans postman github donc c'est facile de travailler avec graphql :

enter image description here

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X