Para que Cloud Endpoints gestione tu API, tienes tres opciones en función de dónde esté alojada y del tipo de protocolo de comunicaciones que utilice:
- Cloud Endpoints para OpenAPI
- Cloud Endpoints para gRPC
- Cloud Endpoints Frameworks para el entorno estándar de App Engine
En esta página se describen las opciones de Endpoints para ayudarte a decidir cuál es la más adecuada para ti.
Elegir una opción de computación
Endpoints admite diferentes Google Cloud opciones de computación que pueden alojar el código de backend de tu API. Endpoints funciona con el proxy de servicios extensible (ESP) o con el proxy de servicios extensible V2 (ESPv2) para proporcionar gestión de APIs. En la siguiente tabla se resumen las opciones de computación admitidas:
ESP para OpenAPI | ESP para gRPC | ESPv2 para OpenAPI | ESPv2 para gRPC | Endpoints Frameworks | |
---|---|---|---|---|---|
Entorno estándar de App Engine de primera generación |
Entornos de ejecución de Java 8 y Python 2.7 | ||||
Entorno estándar de App Engine de segunda generación |
|||||
Entorno flexible de App Engine |
|||||
Cloud Run Functions | |||||
Cloud Run | |||||
Knative serving | |||||
Compute Engine | |||||
GKE | |||||
Kubernetes | |||||
Otro noGoogle Cloud |
Para ver una comparación de las funciones que ofrecen App Engine, GKE y Compute Engine, consulta el artículo Elegir una opción de computación. Si tienes pensado usar App Engine, debes elegir entre el entorno estándar y el flexible. Para ver una comparación de los dos entornos, consulta Elegir un entorno de App Engine.
Acerca de las limitaciones de las opciones de computación
Endpoints para OpenAPI y Endpoints para gRPC pueden usar ESP o ESPv2 como proxy. En las plataformas que no son sin servidor, ESP o ESPv2 se despliega como un contenedor delante de tu aplicación o como un contenedor sidecar junto con tu aplicación. En las plataformas sin servidor, como Cloud Run, Cloud Run Functions y App Engine, ESPv2 se despliega como un servicio de Cloud Run a modo de proxy remoto para gestionar las aplicaciones de la plataforma sin servidor.
Después de implementar el código de backend de tu API, ESP o ESPv2 intercepta todas las solicitudes y realiza las comprobaciones necesarias (como la autenticación) antes de reenviar la solicitud al backend de la API. Cuando el backend responde, ESP recoge y registra telemetría mediante Infraestructura de Servicios.
Puedes ver las métricas de tu API y los enlaces a los registros y los rastreos de Observabilidad de Google Cloud en la página Servicios de Endpoints de laGoogle Cloud consola.
Limitaciones del entorno de generación 1 de App Engine estándar
Históricamente, Endpoints para el entorno estándar de App Engine de primera generación usaba Endpoints Frameworks, que solo es compatible con los entornos de ejecución Java 8 y Python 2.7.
Como el entorno estándar de App Engine no admitía implementaciones de varios contenedores cuando se estaba desarrollando Endpoints Frameworks, este no usa ESP. En su lugar, Endpoints Frameworks incluye una pasarela de APIs integrada que proporciona funciones de gestión de APIs comparables a las que ofrece ESP para Endpoints para OpenAPI y Endpoints para gRPC.
Las APIs de gRPC no son compatibles con App Engine ni con Cloud Run functions
gRPC es un framework de llamada a procedimiento remoto (RPC) que se puede ejecutar en cualquier entorno. Con gRPC, una aplicación cliente puede llamar directamente a métodos de una aplicación de servidor en otra máquina como si fuera un objeto local. Una de las funciones principales de gRPC es el streaming bidireccional con transporte basado en HTTP/2.
Las funciones de App Engine y Cloud Run no admiten HTTP/2.
Lenguajes de programación admitidos
- La especificación de OpenAPI es una especificación independiente del lenguaje. Puedes implementar tu API en cualquier lenguaje de programación.
- gRPC proporciona el compilador de búferes de protocolo,
protoc
, para muchos lenguajes de programación principales: C++, C#, Objective-C (para iOS), Dart, Go, Java (incluido Android), Node.js, Python y Ruby. Consulta las preguntas frecuentes sobre gRPC para ver la lista más actualizada. - Endpoints Frameworks solo admite Java 8 y Python 2.7.
Describir tu API
Las opciones de Endpoints ofrecen diferentes formas de describir tu API.
Endpoints para OpenAPI
La iniciativa OpenAPI es un esfuerzo de todo el sector para estandarizar la descripción de las APIs REST. Endpoints admite APIs descritas con la versión 2.0 de la especificación de OpenAPI (anteriormente, la especificación de Swagger). Describe la superficie de tu API en un archivo JSON o YAML (denominado documento de OpenAPI). Puedes implementar tu API con cualquier framework REST disponible públicamente, como Django o Jersey. Si no conoces la especificación de OpenAPI, consulta la información general sobre OpenAPI.
Para obtener más información, consulta Endpoints para OpenAPI.
Endpoints para gRPC
Con gRPC, defines la estructura de los datos que quieres serializar en un archivo proto, que es un archivo de texto normal con la extensión .proto
. También puedes definir la superficie de tu API en archivos proto, con parámetros de método RPC y tipos de retorno especificados como mensajes de búfer de protocolo. Si no conoces gRPC, consulta ¿Qué es gRPC?
en la documentación de gRPC.
Para obtener más información, consulta Endpoints para gRPC.
Endpoints Frameworks
Endpoints Frameworks es un framework web para los entornos de ejecución estándar de Python 2.7 y Java 8 de App Engine. Añade metadatos (mediante anotaciones en Java o decoradores en Python) al código fuente. Los metadatos describen la superficie de las APIs REST de tu aplicación.
Para obtener más información, consulta Endpoints Frameworks.
Siguientes pasos
Para ver las funciones de Endpoints en acción, consulta la guía de inicio rápido de Endpoints, que usa secuencias de comandos para desplegar una API de ejemplo en el entorno flexible de App Engine.
Familiarízate con los pasos de implementación siguiendo uno de los tutoriales de la opción Endpoints que hayas elegido:
Más información sobre Endpoints y ESP: