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.

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.

  1. En Azure Portal, busque y seleccione Servicios de API Management.

    Seleccionar servicios de API Management

  2. En la página de servicios API Management, seleccione la instancia de API Management.

    Seleccionar su instancia de API Management

Adición de un esquema de GraphQL

  1. En el menú de navegación lateral, en la sección API, seleccione API.

  2. En Definir una API nueva, seleccione el icono GraphQL.

    Captura de pantalla de la selección del icono de GraphQL en la lista de API.

  3. En el cuadro de diálogo, seleccione Completo y rellene los campos necesarios del formulario.

    Captura de pantalla de los campos para crear una instancia de GraphQL API.

    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.
  4. Seleccione Crear.

  5. 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!
}
  1. En el menú de navegación lateral, en la sección API, seleccione su API de GraphQL en la opción de las API>.

  2. En la pestaña Esquema, revise el esquema de un campo en un tipo de objeto en el que desee configurar un resolver.

    1. Seleccione un campo y, a continuación, pase el puntero por el margen izquierdo.

    2. Seleccione + Agregar solucionador

      Captura de pantalla de la adición de un solucionador GraphQL en el portal.

  3. En la página Crear solucionador:

    1. Actualice la propiedad Nombre si lo desea, introduzca opcionalmente una Descripción y confirme o actualice las selecciones Tipo y Campo.
    2. En Origen de datos, seleccione HTTP API.
  4. 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 llamada GET 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>
    

    Captura de pantalla de la configuración de la directiva en el portal.

  5. Seleccione Crear.

  6. 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

  1. Navegue hasta su instancia de API Management.

  2. En el menú de navegación lateral, en la sección API, seleccione API.

  3. En Todas las API, seleccione la GraphQL API.

  4. Seleccione la pestaña Prueba para acceder a la consola de prueba.

  5. En Encabezados:

    1. Seleccione el encabezado en el menú desplegable Nombre.
    2. Escriba el valor en el campo Valor.
    3. Agregue más encabezados seleccionando + Agregar encabezado.
    4. Elimine los encabezados mediante el icono de la papelera.
  6. Si ha agregado un producto a la GraphQL API, aplique el ámbito del producto en Aplicar ámbito del producto.

  7. En el Editor de consultas, haga una de las opciones siguientes:

    1. 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.

    2. Comience a escribir en el editor de consultas para crear una consulta.

      Captura de pantalla de la adición de campos al editor de consultas.

  8. En Variables de consulta, agregue variables para reutilizar la misma consulta o mutación y pasar valores diferentes.

  9. Seleccione Enviar.

  10. Vea la Respuesta.

    Captura de pantalla de la visualización de la respuesta de la consulta de prueba.

  11. Repita los pasos anteriores para probar diferentes cargas.

  12. 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.

Pasos siguientes