¿Cómo enviar una consulta graphql por cartero?

80

yo suelo

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

Pero devuelve "mensaje": "Debe proporcionar una cadena de consulta".

ZPPP
fuente

Respuestas:

135

Hay una mejor manera de hacerlo usando el cliente REST Insomnia

Los documentos están aquí, cómo enviar consultas graphql: https://support.insomnia.rest/article/61-graphql


A continuación se muestran los pasos para el cartero.

Paso 1.

Ejecute GraphiQL en Chrome, abra Chrome Dev Console, haga clic en la pestaña Red y realice la consulta desde graphiql, cuando realice la consulta, la pestaña de red mostrará la solicitud graphql ...

ingrese la descripción de la imagen aquí

Paso 2.

De la graphqlsolicitud, copie la consulta de solicitud, seleccione elCopy as cURL (cmd)

ingrese la descripción de la imagen aquí

Paso 3.

Abra Postman, en la parte superior izquierda, haga clic en el Importbotón, después de hacer clic Import, debe hacer clic en Paste Raw Texty pegar la cURLsolicitud copiada como se hizo en el paso 2 después de que haya terminado, haga clic enImport

ingrese la descripción de la imagen aquí

Etapa 4.

Postman está listo para enviar la solicitud Graphql, simplemente haga clic en el Sendbotón, verá el Responsecuadro de respuesta en el cuerpo como se muestra a continuación

ingrese la descripción de la imagen aquí

Paso 5.

Para ver cómo se envía la consulta, haga clic en la Bodypestaña junto a Headers, sabrá cómo proporcionar los campos del cartero en formato JSON.

por ejemplo:, edges {\n node {\n id\n jobId\n }\nsi desea ver otro campo, debe agregarlo con el sufijo\n

como si fuera necesario nameentonces:edges {\n node {\n id\n jobId\n name\n }\n

\naquí solo significa representar una nueva línea. En su lugar, puede simplificarlo proporcionando un JSON claro e ilustrativo como a continuación

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

Nota : El tipo de cuerpo debe ser sin formato conapplication/jsoncontent-type. Entonces, la consulta debe ser un JSON válido con comillas".."

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

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

ingrese la descripción de la imagen aquí

puede comenzar directamente desde step 5si sabe cómo enviar la consulta en el cuerpo y otras cosas también que deben ser requeridas al realizar una solicitud al cartero

ingrese la descripción de la imagen aquí

Con JSON simplificado

ingrese la descripción de la imagen aquí

p0k8_
fuente
1
¡Asombroso! ¡Asombroso!
ZPPP
Realmente cartero no es útil para graphql, necesitamos un graphiql con pantallas cartero
stackdave
Impresionante, gracias por su hleep
zhulinpinyu
Mientras uso los mismos pasos, obtengo :, Error al importar Curl: se encontraron 2 argumentos sin opciones. Solo se admite uno (la URL)
Ankit Gupta
2
Copiar como cURL (bash) funcionó para mí, en lugar de Copiar como cURL (cmd), usando la aplicación Chrome Postman en el sistema operativo Windows 10
Otro codificador
47

No necesita INSOMNIA en caso de que el servidor GraphQL responda Content-type: application/graphqlopostman.setEnvironmentVariable ,

Simplemente hazlo:

En la pestaña Encabezados: Content-Type: application/graphql

En la pestaña Cuerpo, "sin procesar" seleccionado, ingrese su consulta

ingrese la descripción de la imagen aquí

Estevão Lucas
fuente
obtengo "No hay cadena de consulta presente" al intentar esto
dima
1
¡Funciona perfectamente para mí! Usando Node.js con dependencias express y express-graphql.
Brian
26

Agregando esto para cualquiera que busque sobre el tema ... puede utilizar y probar las llamadas GraphQL mucho mejor y más fácilmente con Insomnia:

https://insomnia.rest

Ha sido fantástico para el desarrollo de GraphQL.

craig.kaminsky
fuente
3
¡Gracias! Aquí está el documento sobre GraphQL: support.insomnia.rest/article/61-graphql
Sifnos
19

Hay una forma sencilla de hacerlo. Utilice un script de solicitud previa para clasificar la carga útil ( fuente ).

Paso 1.

En el cuerpo de la solicitud, coloque un marcador de posición para la carga útil.

{
    "query":{{query}}
}

Paso 2.

Cree la carga útil en el script de solicitud previa y guárdelo en una variable de entorno.

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

Eso es.

Tomasz
fuente
4
¡Esto funciona como un encanto y evita pasar por la molestia de todos los pasos manuales descritos en las respuestas anteriores! Gracias.
Alexis.Rolland
Debemos estar usando una versión anterior de graphql o tener una configuración específica, pero finalmente funcionó con la propuesta anterior y un pequeño cambio "cuerpo" en lugar de "consulta":> marcador de posición> {> "cuerpo": {{consulta}}> }
darul75
11

ACTUALIZACIÓN 2:

No es práctico usar POSTMAN, porque todavía están trabajando de una manera fácil para agregar encabezados, eso lleva mucho tiempo, y creo que POSTMAN no está hecho para trabajar de forma natural con graphql,

puede seguir el progreso al respecto aquí: https://github.com/postmanlabs/postman-app-support/issues/1669

Recomiendo usar otro complemento de paquetes como:

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

para graphiql (no hay posibilidad de agregar encabezados) necesita configurar tres cosas (no es fácil de escribir):

  1. Encabezamiento:

    Tipo de contenido: aplicación / json

  2. Cuerpo:

    Elija Ray <grupo de opciones

    Elija JSON (aplicación / json) <selectbox

  3. Componga un objeto javascript con "consulta" y el "valor" de su consulta de gráfico. Como todos los objetos en js, se necesita la propiedad y el valor, en este caso "quote" es la propiedad, el valor debe estar entre comillas dobles. Dentro del valor (cadena gráfica) no compones objetos js, por lo que no necesitas usar comillas dobles, es solo una cadena.

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

    el problema es que necesita escribir todo en una sola línea, no como grapIql ... hay un requisito de publicación en postman github, por lo que es fácil trabajar con graphql:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

apilado
fuente
11

ACTUALIZACIÓN 8-2019: sé que esto es antiguo, pero con respecto a POSTMAN, si aún no lo ha descubierto, tienen una opción graphql (beta) para publicar el cuerpo. No es necesario agregar encabezados adicionales.

ingrese la descripción de la imagen aquí

vbuser2004
fuente
9

Postman acaba de lanzar soporte GraphQL incorporado en la versión 7.2.

Esta versión admite

  • Envío de consultas GraphQL en el cuerpo de la solicitud como solicitudes POST
  • Soporte para variables GraphQL
  • Creación de API en Postman con el tipo de esquema GraphQL
  • Autocompletado de consultas integrado con esquemas GraphQL definidos por el usuario

Pruébelo y envíenos sus comentarios sobre el hilo de seguimiento en nuestro foro de la comunidad

J.Lin
fuente
8

Me enfrenté al mismo problema cuando trato de usar la graphQlconsulta usando POSTMAN, En POSTMAN envíe datos desde la rawpestaña con el jsontipo.

Comando de consulta:

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

Comando de mutaciones:

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

       #commnent: String Type
       #data_id:Int Type
       #approved:Boolean Type
Sr. Singh
fuente
3

Derivado de la respuesta de Estevão Lucas .

También puede usar el encabezado Content-type: application/jsonen cartero

Y define el cuerpo con:

{
    "query": "{ your_query }"
}

Esto se construye fácilmente en el lado del cliente para formar una carga útil de solicitud.

p.ej

ingrese la descripción de la imagen aquí

Salida:

ingrese la descripción de la imagen aquí

Roel
fuente
0

Pedido https://github.com/hasura/graphqurl - rizo para GraphQL:

  • CLI para realizar consultas GraphQL con autocompletar
  • Ejecute GraphiQL localmente contra cualquier punto final (con encabezados personalizados)
  • Úselo como una biblioteca con nodejs o desde el navegador
  • Admite suscripciones

Yo soy uno de los autores.

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

GraphiQL con encabezados

Shahidh
fuente
-1

SI podemos pasar el tipo de encabezado, luego agregue el encabezado Content-type: application / graphql

El siguiente enlace se puede utilizar como referencia: descripción del enlace aquí

Madhusudhan R
fuente
-2

Al agregar un encabezado, podemos ejecutar la consulta graphql en el cartero

Content-type: application/graphql

gurukatre
fuente