web-dev-qa-db-fra.com

Comment envoyer une requête graphql par postman?

J'utilise

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

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

67
ZPPP

Il existe un meilleur moyen de le faire en utilisant le client REST _ Insomnia

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


Voici les étapes pour postier

Étape 1.

Exécutez GraphiQL dans Chrome, ouvrez la console de développement Chrome, cliquez sur l'onglet Réseau et effectuez la requête à partir de graphiql. Lorsque vous effectuez la requête, l'onglet Réseau affiche la requête graphql ...

enter image description here

Étape 2.

Depuis la demande graphql, copiez la requête, sélectionnez la Copy as cURL (cmd)

enter image description here

Étape 3.

Ouvrez Postman. Dans le coin supérieur gauche, cliquez sur le bouton Import. Une fois que vous avez cliqué sur Import, vous devez cliquer sur le Paste Raw Text et coller la demande cURL copiée comme il est fait dans étape 2, une fois terminé, cliquez sur la Import

enter image description here

Étape 4.

Le facteur est prêt à envoyer la demande Graphql, il suffit de cliquer sur le bouton Send pour afficher le Response dans la zone de réponse dans le 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 saurez 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 avec le suffixe \n.

comme si besoin name alors: edges {\n node {\n id\n jobId\n name\n }\n

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

======================================= =================================

Remarque : Le type de corps doit être brut avec application/json content-type. Donc, 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 directement démarrer à partir de step 5 si vous savez comment envoyer la requête dans le corps et d'autres éléments qui doivent également être requis lors de la demande de postman

enter image description here

Avec JSON simplifié

enter image description here

122
p0k8_

Vous n'avez pas besoin d'INSOMNIA si le serveur GraphQL répond à _Content-type: application/graphql_ ou postman.setEnvironmentVariable,

Simplement 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

39
Estevão Lucas

En ajoutant ceci à ceux qui cherchent sur le sujet ... vous pouvez utiliser et tester les appels GraphQL bien mieux et plus facilement avec Insomnia:

https://insomnia.rest

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

24
craig.kaminsky

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

Étape 1.

Dans le corps de la demande, indiquez un espace réservé pour la charge utile.

{
    "query":{{query}}
}

Étape 2.

Créez la charge dans le script de pré-demande et stockez-la 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 ça.

19
Tomasz

MISE À JOUR 2:

Ce n'est pas une utilisation pratique de POSTMAN, car ils fonctionnent encore de manière simple pour ajouter des en-têtes, ce qui prend du temps, et je pense que POSTMAN n'est pas conçu pour fonctionner naturellement avec graphql,

vous pouvez suivre les progrès à ce sujet ici: https://github.com/postmanlabs/postman-app-support/issues/1669

Je recommande d'utiliser un autre plugin de paquets 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. Entête:

    Type de contenu: application/json

  2. Corps:

    Choisissez Ray <optiongroup

    Choisissez JSON (application/json) <selectbox

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

    {"requête": "{allQuotes {text}}"}

    le problème est que vous avez besoin de taper le tout en une seule ligne, pas comme grapIql ... il y a une exigence de publication dans postman github, il est donc facile de travailler avec graphql:

enter image description here

enter image description here

11
stackdave

J'ai rencontré le même problème lorsque j'essayais d'utiliser la requête graphQl à l'aide de POSTMAN. Dans POSTMAN, envoyez des données à partir de l'onglet raw avec le type json.

Commande de requête:

{"query":"{user(id:902){id,username,DOB}}"}

Commande de mutations:

{ "query": "mutation {createMutations(reviewer:36, comments:\"hello\",data_id: 1659, approved: true ){id}}" }

       #commnent: String Type
       #data_id:Int Type
       #approved:Boolean Type
8
JustChill

Postman vient de publier support GraphQL intégré dans la version 7.2.

Cette version prend en charge

  • Envoi de requêtes GraphQL dans le corps de la requête sous la forme de POST requêtes
  • Prise en charge des variables GraphQL
  • Création d'API dans Postman avec un type de schéma GraphQL
  • Complétion automatique des requêtes intégrée aux schémas GraphQL définis par l'utilisateur

Essayez-le et donnez-nous votre avis sur le fil de suivi de notre forum de communauté

4
J.Lin

Dériver de réponse d'Estevão Lucas .

Vous pouvez également utiliser l'en-tête Content-type: application/json sur le postman

Et définir le corps avec:

{
    "query": "{ your_query }"
}

Ceci est facilement construit côté client pour former une charge utile de requête.

par exemple.

enter image description here

Sortie:

enter image description here

2
Roel

Si vous utilisez Visual Studio, j'ai écrit un plugin pour convertir GraphQL en corps reposant.

https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries

enter image description here

2
Oras

Postman a récemment lancé son support prêt à l'emploi pour GraphQL: https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/

Voici la capture d’écran de l’essai de GraphQL en local:

enter image description here

Remarque : Exécution de GraphQL localement à l'aide de spring-Boot https://www.baeldung.com/spring-graphql

1
Atul Kulkarni

MISE À JOUR 8-2019 - Je sais que c'est vieux, mais en ce qui concerne POSTMAN, si vous ne l'avez pas déjà compris, il existe une option graphql (bêta) pour le corps du message. Il n'est pas nécessaire d'ajouter des en-têtes supplémentaires.

enter image description here

1
vbuser2004

Commander https://github.com/hasura/graphqurl - curl pour GraphQL:

  • CLI pour la création de requêtes GraphQL avec la saisie semi-automatique
  • Exécuter GraphiQL localement sur n'importe quel noeud final (avec en-têtes personnalisés)
  • Utiliser comme bibliothèque avec nodejs ou depuis le navigateur
  • Prend en charge les abonnements

Je suis l'un des auteurs.

gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i

GraphiQL with headers

0
Shahidh

SI nous pouvons passer le type d’en-tête, puis ajouter l’en-tête Content-type: application/graphql

Le lien ci-dessous peut être utilisé comme référence: description du lien ici

0
Madhusudhan R