Wie sende ich eine Graphql-Anfrage per Postbote?

79

ich benutze

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

Es wird jedoch "message" zurückgegeben: "Muss eine Abfragezeichenfolge bereitstellen."

ZPPP
quelle

Antworten:

134

Es gibt eine bessere Möglichkeit, dies mit dem REST-Client Insomnia zu tun

Hier finden Sie Informationen zum Senden von Graphql-Anfragen: https://support.insomnia.rest/article/61-graphql


Unten sind die Schritte für den Postboten

Schritt 1.

Führen Sie GraphiQL in Chrome aus, öffnen Sie die Chrome Dev Console, klicken Sie auf die Registerkarte Netzwerk und führen Sie die Abfrage von graphiql aus. Wenn Sie die Abfrage durchführen, wird auf der Registerkarte Netzwerk die graphql-Anforderung angezeigt ...

Geben Sie hier die Bildbeschreibung ein

Schritt 2.

graphqlWählen Sie aus der Anforderungskopie die Anforderungsabfrage ausCopy as cURL (cmd)

Geben Sie hier die Bildbeschreibung ein

Schritt 3.

Öffnen Sie den Postboten. ImportKlicken ImportSie oben links auf die Schaltfläche. Nachdem Sie auf geklickt haben, müssen Sie auf klicken Paste Raw Textund die kopierte cURLAnforderung wie in Schritt 2 ausgeführt einfügen, nachdem Sie fertig sind. Klicken Sie aufImport

Geben Sie hier die Bildbeschreibung ein

Schritt 4.

Postman ist bereit , die Graphql Anfrage zu senden, klicken Sie einfach auf den SendKnopf, werden Sie das sehen Responsein dem Antwortfeld in Körper , wie unten

Geben Sie hier die Bildbeschreibung ein

Schritt 5.

Um zu sehen, wie die Abfrage gesendet wird, klicken Sie auf die BodyRegisterkarte neben Headers, um zu erfahren, wie Sie die Felder vom Postboten im JSON-Format bereitstellen.

Beispiel: edges {\n node {\n id\n jobId\n }\nWenn Sie ein anderes Feld anzeigen möchten, müssen Sie es mit dem Suffix hinzufügen\n

wie wenn nötig namedann:edges {\n node {\n id\n jobId\n name\n }\n

\nhier bedeutet nur, eine neue Linie darzustellen. Stattdessen können Sie es einfacher machen, indem Sie einen klaren und anschaulichen JSON wie unten bereitstellen

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

Hinweis : Der Körpertyp muss mit demapplication/jsonInhaltstyproh sein. Die Abfrage muss also ein gültiger JSON mit Anführungszeichen sein".."

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

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

Geben Sie hier die Bildbeschreibung ein

Sie können direkt damit beginnen, step 5wenn Sie wissen, wie Sie die Anfrage im Hauptteil und in anderen Dingen senden, die erforderlich sind, während Sie eine Anfrage vom Postboten stellen

Geben Sie hier die Bildbeschreibung ein

Mit vereinfachtem JSON

Geben Sie hier die Bildbeschreibung ein

p0k8_
quelle
1
Tolle! Tolle!
ZPPP
wirklich postman ist nicht nützlich für graphql, wir brauchen ein graphiql mit postman
bildschirmen
Super, danke für deinen Schlaf
zhulinpinyu
Bei Verwendung der gleichen Schritte wird Folgendes angezeigt: Fehler beim Importieren von Argumenten ohne Curl: 2-Option gefunden. Es wird nur eine unterstützt (die URL)
Ankit Gupta
2
Kopieren als cURL (bash) funktionierte für mich anstelle von Kopieren als cURL (cmd) mit der Chrome Postman App unter Windows 10 OS
Ein weiterer Codierer
46

Sie benötigen INSOMNIA nicht, wenn der GraphQL-Server auf Content-type: application/graphqloder reagiertpostman.setEnvironmentVariable .

TU es einfach:

Auf der Registerkarte Überschriften: Content-Type: application/graphql

Geben Sie auf der Registerkarte "Text" die Option "Roh" ein

Geben Sie hier die Bildbeschreibung ein

Estevão Lucas
quelle
Ich bekomme "Keine Abfragezeichenfolge war vorhanden", wenn ich dies versuche
dima
1
Funktioniert perfekt für mich! Verwenden von Node.js mit Express- und Express-Graphql-Abhängigkeiten.
Brian
26

Wenn Sie dies für alle hinzufügen, die nach dem Thema suchen, können Sie GraphQL-Aufrufe mit Insomnia viel besser und einfacher nutzen und testen:

https://insomnia.rest

Es war fantastisch für die GraphQL-Entwicklung.

craig.kaminsky
quelle
3
Vielen Dank! Hier ist das Dokument zu GraphQL: support.insomnia.rest/article/61-graphql
Sebabouche
19

Es gibt einen einfachen Weg, dies zu tun. Verwenden Sie ein Pre-Request-Skript, um die Nutzdaten ( Quelle ) zu kennzeichnen .

Schritt 1.

Fügen Sie im Hauptteil der Anfrage einen Platzhalter für die Nutzlast ein.

{
    "query":{{query}}
}

Schritt 2.

Erstellen Sie die Nutzdaten im Pre-Request-Skript und speichern Sie sie in einer Umgebungsvariablen.

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

Das ist es.

Tomasz
quelle
4
Dies funktioniert wie ein Zauber und vermeidet es, den Aufwand aller in den vorherigen Antworten beschriebenen manuellen Schritte zu durchlaufen! Vielen Dank.
Alexis.Rolland
11

UPDATE 2:

Es ist nicht praktisch, POSTMAN zu verwenden, da es noch auf einfache Weise funktioniert, Header hinzuzufügen, die lange dauern, und ich denke, POSTMAN ist nicht für die natürliche Arbeit mit graphql gemacht.

Den Fortschritt dazu können Sie hier verfolgen: https://github.com/postmanlabs/postman-app-support/issues/1669

Ich empfehle ein anderes Paket-Plugin wie:

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

Für graphiql (keine Möglichkeit zum Hinzufügen von Headern) müssen Sie drei Dinge festlegen (die Eingabe ist nicht einfach):

  1. Header:

    Inhaltstyp: application / json

  2. Körper:

    Wählen Sie Ray <Optionsgruppe

    Wählen Sie JSON (application / json) <selectbox

  3. Erstellen Sie ein Javascript-Objekt mit "query" und dem "value" Ihrer Diagrammabfrage. Wie bei allen Objekten in js ist die Eigenschaft und der Wert erforderlich. In diesem Fall ist "quote" die Eigenschaft. Der Wert muss in doppelte Anführungszeichen gesetzt werden. Innerhalb des Wertes (graphl string) komponieren Sie keine js-Objekte, sodass Sie keine doppelten Anführungszeichen verwenden müssen, sondern nur einen String.

    {"query": "{allQuotes {text}}"}

    Das Problem ist, dass Sie alle in einer einzigen Zeile eingeben müssen, nicht wie bei grapIql ... es gibt eine Post-Anforderung in Postman Github, daher ist die Arbeit mit graphql einfach:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Stackdave
quelle
9

Postman hat gerade die integrierte GraphQL-Unterstützung in Version 7.2 veröffentlicht.

Diese Version unterstützt

  • Senden von GraphQL-Abfragen im Anforderungshauptteil als POST-Anforderungen
  • Unterstützung für GraphQL-Variablen
  • Erstellen von APIs in Postman mit dem GraphQL-Schematyp
  • Automatische Vervollständigung von Abfragen in benutzerdefinierten GraphQL-Schemas integriert

Bitte probieren Sie es aus und geben Sie uns Ihr Feedback zum Tracking-Thread in unserem Community-Forum

J. Lin
quelle
9

UPDATE 8-2019 - Ich weiß, dass dies alt ist, aber in Bezug auf POSTMAN haben sie, wenn Sie es noch nicht herausgefunden haben, eine graphql (Beta) -Option zum Posten des Körpers. Es müssen keine zusätzlichen Header hinzugefügt werden.

Geben Sie hier die Bildbeschreibung ein

vbuser2004
quelle
8

Ich hatte das gleiche Problem, als ich versuchte, die graphQlAbfrage mit POSTMANPOSTMAN zu verwenden. Senden Sie Daten von der rawRegisterkarte mit dem jsonTyp.

Abfragebefehl:

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

Mutations Command:

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

       #commnent: String Type
       #data_id:Int Type
       #approved:Boolean Type
Herr Singh
quelle
3

Abgeleitet von Estevão Lucas 'Antwort .

Sie können auch die Kopfzeile Content-type: application/jsonfür Postboten verwenden

Und definieren Sie den Körper mit:

{
    "query": "{ your_query }"
}

Dies kann auf der Clientseite leicht aufgebaut werden, um eine Anforderungsnutzlast zu bilden.

z.B

Geben Sie hier die Bildbeschreibung ein

Ausgabe:

Geben Sie hier die Bildbeschreibung ein

Roel
quelle
0

Kasse https://github.com/hasura/graphqurl - Curl für GraphQL:

  • CLI zum Erstellen von GraphQL-Abfragen mit automatischer Vervollständigung
  • Führen Sie GraphiQL lokal auf einem beliebigen Endpunkt aus (mit benutzerdefinierten Headern).
  • Verwendung als Bibliothek mit nodejs oder über den Browser
  • Unterstützt Abonnements

Ich bin einer der Autoren.

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

GraphiQL mit Headern

Shahidh
quelle
-1

WENN wir den Headertyp übergeben können, fügen Sie den Header Content-type hinzu: application / graphql

Der folgende Link kann als Referenz verwendet werden: Linkbeschreibung hier

Madhusudhan R.
quelle
-2

Durch Hinzufügen eines Headers können wir eine grafische Abfrage im Postboten ausführen

Content-type: application/graphql

Gurukatre
quelle