Compartir vía


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 obtener más información, consulte introducción a GraphQL.

Nota:

Actualmente, esta característica no está disponible en las áreas de trabajo.

En este artículo, hará lo siguiente:

  • Importe un esquema de GraphQL a la instancia de Azure API Management.
  • Configure 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:

    Captura de pantalla que muestra los servicios de API Management en los resultados de la búsqueda.

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

    Captura de pantalla que muestra una instancia de API Management en la página servicios de API Management.

Adición de un esquema de GraphQL

  1. En el panel izquierdo, en API, seleccione API.

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

    Captura de pantalla de la selección del icono de GraphQL.

  3. En el cuadro de diálogo, seleccione Completo y, a continuación, escriba valores en los campos obligatorios, como se describe en la tabla siguiente.

    Captura de pantalla de la página Crear desde el esquema de GraphQL.

    Importancia Descripción
    Nombre para mostrar Nombre con el que se mostrará la GraphQL API.
    Nombre Nombre bruto de la API de GraphQL. 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 Seleccione un esquema basado 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. La selección predeterminada es HTTP(S).
    Sufijo de dirección URL de API Agregue un sufijo url para identificar la API específica en la instancia de API Management. Debe ser único en la instancia de API Management.
    URL base Campo no editable que muestra la dirección URL base de la API.
    Etiquetas Opcionalmente, asocie graphQL API con etiquetas nuevas o existentes.
    Productos Asocie la GraphQL API a un producto para publicarla.
    ¿Definir versión de esta API? Active la casilla para aplicar un esquema de control de versiones a graphQL API.
  4. Seleccione Crear.

  5. Una vez creada la API, revise o modifique el esquema en la pestaña Esquema .

Configurar una resolución

Configure un solucionador para asignar un campo del esquema a un punto de conexión HTTP existente. Aquí se proporcionan pasos a alto nivel. Para obtener más información, consulte Configuración de un solucionador GraphQL.

Supongamos que importó el siguiente esquema básico de GraphQL y quiere configurar una resolución para la users consulta.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. En el panel izquierdo, en API, seleccione API.

  2. Seleccione el API GraphQL.

  3. En la pestaña Esquema , revise el esquema de un campo de un tipo de objeto en el que desea configurar una resolución.

    1. Seleccione un campo y, a continuación, mantenga el puntero en el margen izquierdo.

    2. Seleccione Agregar solucionador.

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

  4. En el panel Crear resolución :

    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.
  5. En el editor de directivas de solucionador, actualice el <http-data-source> elemento con elementos secundarios para su escenario. Por ejemplo, el solucionador siguiente recupera el users campo realizando una GET llamada 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>
    

    Recorte de pantalla de la configuración de una resolución para una directiva en el portal.

  6. Seleccione Crear.

  7. Para resolver los datos de otro campo del esquema, repita los pasos anteriores para crear otro solucionador.

Sugerencia

Cuando edite una directiva de resolución, seleccione ejecutar 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. Vaya a la instancia de API Management.

  2. En el panel izquierdo, 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ú Nombre .
    2. Escriba el valor en el cuadro Valor .
    3. Para agregar más encabezados, seleccione Agregar encabezado.
    4. Elimine los encabezados con el botón papelera de reciclaje.
  6. Si ha agregado un producto a la GraphQL API, agregue un ámbito de producto bajo Aplicar ámbito de producto.

  7. En el Editor de consultas, realice una de las acciones siguientes:

    1. Seleccione al menos un campo o subcampo de la lista del menú a la izquierda del editor. 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 del 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 respuesta de consulta de prueba.

  11. Repita los pasos anteriores para probar diferentes cargas.

  12. Cuando haya terminado las pruebas, salga de la consola de prueba.

Cómo 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.