Construyendo un proxy API simple

Esta página se aplica a Apigee y Apigee híbrido .

Ver la documentación de Apigee Edge .

Apigee permite exponer rápidamente servicios backend como API. Para ello, se crea un proxy de API que proporciona una fachada para el servicio backend que se desea exponer. Solo se necesita proporcionar la dirección de red del servicio backend, junto con información que Apigee utiliza para crear el proxy de API que se expone a los desarrolladores.

El proxy de API desvincula la implementación de tu servicio backend de la API que consumen los desarrolladores. Esto los protege de futuros cambios en tus servicios backend. A medida que actualizas los servicios backend, los desarrolladores, al estar protegidos de dichos cambios, pueden seguir llamando a la API sin interrupciones.

Este tema proporciona información sobre los distintos tipos de proxies y su configuración. Para obtener instrucciones paso a paso sobre cómo crear proxies, consulte los siguientes temas:

Creación de un proxy API mediante la interfaz de usuario

La forma más sencilla de crear un proxy API es utilizar el asistente Crear proxy .

Para acceder al asistente Crear proxy mediante la interfaz de usuario de Apigee, realice los siguientes pasos:

  1. Inicie sesión en la interfaz de usuario de Apigee .
  2. En la barra de navegación, seleccione Desarrollar > Proxies de API .
  3. Haga clic en Crear nuevo .
    Botón para crear proxy

El asistente Crear proxy se muestra y lo guía a través de los pasos para generar y agregar funciones mínimas a un proxy API.

First page of the Create Proxy wizard
    prompting you to select reverse proxy, No Target, or Proxy bundle to customize the wizard flow.

La primera página del asistente le permite crear un proxy API a partir de las siguientes fuentes:

Tipo Descripción
Proxy inverso (el más común)

Un proxy API que enruta las solicitudes entrantes a servicios backend HTTP existentes. Puede ser una API JSON o XML. Consulte "Crear un proxy inverso para un servicio HTTP" más adelante en esta sección.

Haga clic en "Usar especificación OpenAPI" para generar el proxy a partir de una especificación OpenAPI válida. Para obtener más información sobre esta opción, consulte "Usar especificaciones OpenAPI para generar proxies" más adelante en esta sección.

Sin objetivo

Un proxy de API sin backend de API ("sin destino"). Similar a la creación de un proxy inverso para un servicio HTTP descrita anteriormente, excepto que no se especificará una API existente al definir los detalles del proxy de API.

Haga clic en "Usar especificación OpenAPI" para generar el proxy a partir de una especificación OpenAPI válida. Para obtener más información sobre esta opción, consulte "Usar especificaciones OpenAPI para generar proxies" más adelante en esta sección.

Subir paquete de proxy Un paquete de proxy de API existente (por ejemplo, uno de los ejemplos de proxy de API disponibles en GitHub). Consulta "Importar un proxy de API desde un paquete de proxy de API" .

Las siguientes secciones analizan los detalles de cada tipo de proxy.

Creación de un proxy inverso para un servicio HTTP

Apigee genera servidores proxy inversos basados ​​en la siguiente información:

  • URL del servicio backend.
  • Ruta URI que identifica de forma única la API que el proxy de API expondrá a las aplicaciones del consumidor.

La URL del servicio backend suele representar una aplicación habilitada para servicios propiedad de su organización. También puede apuntar a una API pública. La API o el servicio pueden estar bajo su control (por ejemplo, una aplicación interna de RR. HH. o una aplicación Rails en la nube) o ser una API o servicio de terceros (por ejemplo, Twitter o Instagram).

Los siguientes detalles de proxy están disponibles después de acceder al asistente Crear proxy y seleccionar un tipo de proxy :

Campo Descripción
Nombre Nombre mostrado para tu API. Especifica caracteres alfanuméricos, guion (-) o guion bajo (_).
Ruta base

Fragmento de URI que aparece después de la dirección http://[host] o https://[host] de tu proxy de API. Apigee utiliza el URI de la ruta base para conectar y enrutar las solicitudes entrantes al proxy de API correspondiente.

Después de la ruta base se encuentran las URL de recursos adicionales. La estructura completa de URL que los clientes usan para llamar a su proxy de API es la siguiente:

https://[host]/ BASE_PATH / CONDITIONAL_FLOW_PATH

Utilice comodines en las rutas base

Use uno o más comodines /*/ en las rutas base de los proxys de API para asegurar su futuro. Por ejemplo, una ruta base /team/*/members permite a los clientes llamar https://[host]/team/ blue /members y https://[host]/team/ green /members sin necesidad de crear nuevos proxys de API para dar soporte a nuevos equipos. Tenga en cuenta que /**/ no es compatible.

Descripción (Opcional) Descripción de la API.
Objetivo (API existente) URL del servicio backend que este proxy API invoca.

Importar un proxy de API desde un paquete de proxy de API

Los proxies de API suelen definirse como una colección de archivos XML, junto con otros archivos de soporte. Al definirlos como un conjunto de archivos externos a Apigee, se pueden mantener en un sistema de control de versiones y luego importarlos a Apigee para pruebas e implementación.

Para importar servidores proxy de API desde un paquete de servidores proxy de API, realice los siguientes pasos:

  1. Acceda al asistente Crear proxy como se describe en Crear un proxy de API mediante la interfaz de usuario anteriormente en esta sección.
  2. Haga clic en Cargar paquete de proxy .
  3. En la página Cargar paquete de proxy del asistente de proxy, ingrese la siguiente información:

    Campo Descripción
    Paquete ZIP Archivo ZIP con la configuración del proxy de la API. Arrastre y suelte o haga clic para acceder al archivo.
    Nombre Nombre mostrado para tu API. El valor predeterminado es el nombre del archivo ZIP sin la extensión.
  4. Haga clic en Siguiente .
  5. En la página Resumen , seleccione los entornos de implementación, si lo desea, y haga clic en Crear e implementar

    Se muestra un acuse de recibo confirmando que su nuevo proxy API se creó correctamente.

  6. Haga clic en Editar proxy para mostrar la página de detalles del proxy API.

Creación de servidores proxy de API de gRPC

Además de los proxies de API REST, Apigee admite proxies de API gRPC con soporte de paso a través, por el momento. Con este soporte , la carga útil de gRPC es opaca para Apigee y el tráfico se enruta desde el cliente gRPC al servidor de destino gRPC preconfigurado en la configuración de destino.

En este momento, los servidores proxy de API gRPC de Apigee:

  • Admite solicitudes gRPC unarias.
  • No se pueden utilizar políticas que afecten la carga útil.
  • Se puede usar en productos API no asociados con proxies GraphQL o REST. Las cuotas específicas del producto API y otras configuraciones de operación se aplican a todos los proxies del producto.
  • No son compatibles con Apigee híbrido.
  • Utilice dos variables de flujo específicas de gRPC: request.grpc.rpc.name y request.grpc.service.name .
  • Se puede monitorear con estas variables de Apigee Analytics específicas de gRPC: x_apigee_grpc_rpc_name , x_apigee_grpc_service_name y x_apigee_grpc_status .
  • Devolver códigos de estado de gRPC .

También debe configurar su balanceador de carga para que sea compatible con gRPC. Consulte "Usar gRPC con sus aplicaciones" y "Usar comandos de la CLI de gcloud para crear enrutamiento para gRPC" .

Para crear un proxy de API gRPC, primero defina un servidor de destino gRPC (consulte Creación de servidores de destino ) y luego especifique ese servidor de destino al crear el nuevo proxy.

Uso de comandos CLI de gcloud para crear enrutamiento para gRPC

Esta sección muestra comandos de ejemplo para crear enrutamiento para proxies gRPC mediante la CLI de gcloud . Las instrucciones incluyen la configuración de balanceadores de carga, un servidor de destino y una MIG.

Esta sección no constituye una guía completa para la creación del enrutamiento. Estos ejemplos podrían no ser adecuados para todos los casos de uso. Además, estas instrucciones presuponen familiaridad con el enrutamiento externo (MIG) y la configuración de gRPC del balanceador de carga en la nube .

Establecer variables de entorno

Estas variables de entorno se utilizan en los comandos de las subsecciones.

PROJECT_ID=YOUR_PROJECT_ID
MIG_NAME=YOUR_MIG_NAME
VPC_NAME=default
VPC_SUBNET=default
REGION=REGION_NAME
APIGEE_ENDPOINT=ENDPOINT
CERTIFICATE_NAME=CERTIFICATE_NAME
DOMAIN_HOSTNAME=DOMAIN_HOSTNAME

Añadiendo seguridad

En la página Políticas comunes del asistente para crear proxy , seleccione el tipo de autorización de seguridad que desea agregar. La siguiente tabla resume las opciones disponibles:

Autorización de seguridad Descripción
Clave API Añade una verificación simple de la clave API al proxy API que estás definiendo. En respuesta, la Plataforma API añade una política VerifyAPIKey y una política AssignMessage a tu proxy API. La política VerifyAPIKey valida las claves API presentadas por las aplicaciones solicitantes. La política AssignMessage elimina la clave API, proporcionada en la llamada API como parámetro de consulta, de la solicitud reenviada al servidor backend.
OAuth 2.0 Añade autenticación basada en OAuth 2.0 a tu proxy de API. Apigee añade automáticamente las siguientes políticas a tu proxy de API: una para verificar un token de acceso y otra para eliminarlo del mensaje antes de reenviarlo a tu servicio backend. Para saber cómo obtener un token de acceso, consulta OAuth .
Pasar a través (sin autorización) No se requiere autorización. Las solicitudes se envían al backend sin ninguna comprobación de seguridad en Apigee.

Añadiendo soporte para CORS

El intercambio de recursos entre orígenes (CORS) es un mecanismo estándar que permite a un navegador web realizar solicitudes directas a otro dominio. El estándar CORS define un conjunto de encabezados HTTP que los navegadores y servidores web utilizan para implementar la comunicación entre dominios.

Puede agregar soporte para CORS realizando una de las siguientes acciones:

  • Agregar la política CORS al PreFlow de solicitud de ProxyEndpoint
  • Seleccionar Agregar encabezados CORS en la página Políticas comunes del asistente Crear proxy

Para obtener información más detallada sobre la compatibilidad con CORS, incluida la incorporación de compatibilidad previa al vuelo de CORS a un proxy, consulte Cómo incorporar compatibilidad con CORS a un proxy de API .

Agregar cuotas

Las cuotas protegen su servicio backend del tráfico elevado bajo Cuota . Consulte Cuotas . (No disponible si se selecciona la autorización de paso).

Uso de especificaciones OpenAPI para generar proxies

En esta sección se analiza la opción Usar OpenAPI, que está disponible para generar a partir de una especificación OpenAPI los siguientes tipos de servidores proxy de API: inversos o sin destino.

¿Qué es una especificación OpenAPI?

Logotipo de la Iniciativa API Abierta La Iniciativa Open API (OAI) se centra en la creación, el desarrollo y la promoción de un formato de descripción de API independiente del proveedor, basado en la Especificación Swagger. Para más información, consulte la Iniciativa OpenAPI .

Una especificación OpenAPI utiliza un formato estándar para describir una API RESTful. Escrita en formato JSON o YAML, es legible por máquinas, pero también fácil de leer y comprender para humanos. La especificación describe elementos de la API como su ruta base, rutas y verbos, encabezados, parámetros de consulta, operaciones, tipos de contenido, descripciones de respuestas, etc. Además, una especificación OpenAPI se utiliza comúnmente para generar documentación de la API.

El siguiente fragmento de una especificación de OpenAPI describe el servicio de destino simulado de Apigee: http://mocktarget.apigee.net . Para más información, consulte la especificación de OpenAPI para el ejemplo helloworld .

openapi: 3.0.0
info:
  description: OpenAPI Specification for the Apigee mock target service endpoint.
  version: 1.0.0
  title: Mock Target API
paths:
  /:
    get:
      summary: View personalized greeting
      operationId: View a personalized greeting
      description: View a personalized greeting for the specified or guest user.
      parameters:
        - name: user
          in: query
          description: Your user name.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Success
  /help:
    get:
      summary: Get help
      operationId: Get help
      description: View help information about available resources in HTML format.
      responses:
        "200":
          description: Success
...

Mediante el asistente para crear proxy , puede importar una especificación de OpenAPI y usarla para generar un proxy de API. Una vez generado, puede usar la interfaz de usuario de Apigee para seguir desarrollándolo, añadiendo políticas, implementando código personalizado, etc., como cualquier proxy de Apigee.

Creación de un proxy API a partir de una especificación OpenAPI

Crea tus proxies de API a partir de una especificación OpenAPI. Con solo unos clics, tendrás un proxy de API con rutas, parámetros, flujos condicionales y endpoints de destino generados automáticamente. Después, puedes añadir funciones como seguridad OAuth, limitación de velocidad y almacenamiento en caché.

En el asistente para crear proxy , haga clic en "Usar especificación OpenAPI" y siga las instrucciones para crear un proxy inverso o sin destino a partir de una especificación OpenAPI. Para obtener más información, consulte "Crear un proxy de API a partir de una especificación OpenAPI" .

Creación de una nueva revisión de un proxy API

Cree una nueva revisión de un proxy API, como se describe a continuación.

Para crear una nueva revisión de un proxy API, realice los siguientes pasos:

  1. Inicie sesión en la interfaz de usuario de Apigee .
  2. En la barra de navegación, seleccione Desarrollar > Proxies de API .
  3. Haga clic en el proxy API de la lista que desea copiar.
  4. Haga clic en la pestaña Desarrollar .

  5. Seleccione el botón Guardar y seleccione Guardar como nueva revisión .

Realizar una copia de seguridad de un proxy API

Puede crear una copia de seguridad de un proxy de API existente como un conjunto de archivos XML en un paquete de proxy de API. Una vez exportado a un paquete, puede importar el proxy de API a un nuevo proxy, como se describe en "Importar un proxy de API desde un paquete de proxy de API" en esta misma sección. Para obtener más información, consulte "Descargar proxies de API" .

Creación de un proxy API mediante la API

Para crear un proxy de API utilizando la API, consulte Creación de un proxy de API .

Acerca de los proxies sin objetivo

Los proxies sin destino en Apigee son útiles cuando se desea procesar solicitudes dentro de Apigee sin reenviarlas a un servicio backend. Es importante comprender cuándo es adecuado este enfoque.

Casos de uso comunes

  • Interacción con datos gestionados por Apigee : Un proxy sin destino es útil cuando solo se necesita interactuar con datos gestionados por Apigee, como los almacenados en un mapa clave-valor (KVM) o la caché de Apigee . Por ejemplo, se puede usar un proxy sin destino para recuperar datos, como datos de sesión de usuario o datos de configuración, del KVM. En este caso, no es necesario llamar a un servicio de backend. Basta con una política KeyValueMapOperations en el flujo del proxy. Por ejemplo, se podría querer que el emisor solicite el vaciado de la caché. Esto se puede hacer invocando la política InvalidateCache , sin necesidad de conectarse a un destino.
  • Uso de API simuladas : Puedes crear API simuladas para simular el comportamiento de la API antes de completar la implementación del backend, lo que permite que el desarrollo del frontend avance de forma independiente. Para obtener más información sobre la creación de API simuladas, consulta OpenAPI Mock API Proxy en Github.
  • Gestión de tokens : Apigee puede emitir tokens OAuthV2, y eso generalmente se hace a través de un proxy sin destino.
  • Prueba del comportamiento de la política : un proxy sin objetivo puede ser útil cuando desea probar las políticas de Apigee para comprobar su comportamiento.