Adición de una GraphQL API sintética y configuración de solucionadores de campos
SE APLICA A: todos los niveles de API Management
En API Management, puede agregar una GraphQL API en uno de los dos modelos: pasar a un punto de conexión de GraphQL existente o importar un esquema GraphQL y crear una GraphQL API sintética con solucionadores de campos personalizados. Para más información, consulte la introducción a GraphQL.
Nota:
Actualmente, esta característica no está disponible en las áreas de trabajo.
En este artículo, hará lo siguiente:
- Importación de un esquema de GraphQL a la instancia de API Management
- Configuración de una resolución para una consulta de GraphQL mediante un punto de conexión HTTP existente
- Probar la GraphQL API
Si quiere exponer un punto de conexión de GraphQL existente como API, consulte Importación de una API de GraphQL.
Requisitos previos
- Tener una instancia de API Management existente. Cree una suscripción si todavía no lo ha hecho.
- Un archivo de esquema de GraphQL válido con la extensión
.graphql
. - Un punto de conexión de GraphQL de back-end es opcional en este escenario.
Vaya a la instancia de API Management.
En Azure Portal, busque y seleccione Servicios de API Management.
En la página de servicios API Management, seleccione la instancia de API Management.
Adición de un esquema de GraphQL
En el menú de navegación lateral, en la sección API, seleccione API.
En Definir una API nueva, seleccione el icono GraphQL.
En el cuadro de diálogo, seleccione Completo y rellene los campos necesarios del formulario.
Campo Description Nombre para mostrar Nombre con el que se mostrará la GraphQL API. Nombre Nombre sin formato de la GraphQL API. Se rellena automáticamente a medida que escribe el nombre para mostrar. Tipo GraphQL Seleccione GraphQL sintético para importar desde un archivo de esquema GraphQL. Punto de conexión de GraphQL de reserva Puede escribir una dirección URL con un nombre de punto de conexión de la API de GraphQL. API Management pasa las consultas de GraphQL a este punto de conexión cuando no se establece un solucionador personalizado en un campo. Descripción Agregue una descripción de la API. Esquema URL Realice una selección basada en el punto de conexión de GraphQL. Seleccione una de las opciones que incluye un esquema WebSocket (WS o WSS) si GraphQL API incluye el tipo de suscripción. Selección predeterminada: HTTP(S). Sufijo de dirección URL de API Agregue un sufijo de URL para identificar esta API específica en esta instancia de API Management. Tiene que ser único en esta instancia de API Management. URL base Campo no editable que muestra la dirección URL base de la API Etiquetas Asocie la GraphQL API a etiquetas nuevas o existentes. Productos Asocie la GraphQL API a un producto para publicarla. ¿Definir versión de esta API? Seleccione esta opción para aplicar un esquema de control de versiones a la API de GraphQL. Seleccione Crear.
Una vez creada la API, examine o modifique el esquema en la pestaña Diseño.
Configuración del solucionador
Configure un solucionador para asignar un campo del esquema a un punto de conexión HTTP existente. Aquí se proporcionan pasos de nivel superior. Para obtener más información, consulte Configuración de un solucionador GraphQL.
Supongamos que importó el siguiente esquema básico de GraphQL y que quiere configurar una resolución para la consulta de usuarios.
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
En el menú de navegación lateral, en la sección API, seleccione su API de GraphQL en la opción de las API>.
En la pestaña Esquema, revise el esquema de un campo en un tipo de objeto en el que desee configurar un resolver.
Seleccione un campo y, a continuación, pase el puntero por el margen izquierdo.
Seleccione + Agregar solucionador
En la página Crear solucionador:
- Actualice la propiedad Nombre si lo desea, introduzca opcionalmente una Descripción y confirme o actualice las selecciones Tipo y Campo.
- En Origen de datos, seleccione HTTP API.
En el editor de directivas de solucionador, actualice el
<http-data-source>
elemento con elementos secundarios para su escenario. Por ejemplo, el siguiente solucionador recupera el campo users mediante una llamadaGET
a un origen de datos HTTP existente.<http-data-source> <http-request> <set-method>GET</set-method> <set-url>https://myapi.contoso.com/users</set-url> </http-request> </http-data-source>
Seleccione Crear.
Para resolver los datos de otro campo del esquema, repita los pasos anteriores para crear un solucionador.
Sugerencia
Al editar una directiva de resolución, seleccione Ejecutar prueba para comprobar la salida del origen de datos, que puede validar con el esquema. Si se producen errores, la respuesta incluye información de solución de problemas.
Probar la GraphQL API
Navegue hasta su instancia de API Management.
En el menú de navegación lateral, en la sección API, seleccione API.
En Todas las API, seleccione la GraphQL API.
Seleccione la pestaña Prueba para acceder a la consola de prueba.
En Encabezados:
- Seleccione el encabezado en el menú desplegable Nombre.
- Escriba el valor en el campo Valor.
- Agregue más encabezados seleccionando + Agregar encabezado.
- Elimine los encabezados mediante el icono de la papelera.
Si ha agregado un producto a la GraphQL API, aplique el ámbito del producto en Aplicar ámbito del producto.
En el Editor de consultas, haga una de las opciones siguientes:
Seleccione al menos un campo o subcampo de la lista en el menú lateral. Los campos y subcampos que seleccione aparecerán en el editor de consultas.
Comience a escribir en el editor de consultas para crear una consulta.
En Variables de consulta, agregue variables para reutilizar la misma consulta o mutación y pasar valores diferentes.
Seleccione Enviar.
Vea la Respuesta.
Repita los pasos anteriores para probar diferentes cargas.
Una vez completadas las pruebas, salga de la consola de prueba.
Proteger la GraphQL API
Proteja la API de GraphQL aplicando las directivas de autenticación y autorización existentes y una directiva de validación de GraphQL para protegerse frente a ataques específicos de GraphQL.
Temas relacionados
- Limitaciones de importación de API
- Importación de una especificación de OpenAPI
- Importación de una API de SOAP
- Importación de API de SOAP y conversión en REST
- Importación de App Service API
- Importación de una aplicación de contenedor de Azure como una API
- Importación de WebSocket API
- Importación de GraphQL API
- Importación de un esquema GraphQL y configuración de solucionadores de campos
- Importación de una aplicación de Azure Function App
- Importación de una aplicación lógica de Azure.
- Importación de un servicio Service Fabric
- Importación de una API de Azure OpenAI
- Importación de una API de OData
- Importación de metadatos de SAP OData
- Importación de una API de gRPC
- Edición de una API