Cloud Endpoints Frameworks se llamaba anteriormente Endpoints. Para distinguir entre las dos versiones, en esta página se hace referencia a la nueva versión como Endpoints Frameworks 2.0 y a la versión anterior como Endpoints 1.0. En esta página se describe cómo migrar una aplicación de Cloud Endpoints versión 1.0 a Endpoints Frameworks versión 2.0. La migración consiste en cambiar una biblioteca y la configuración de la aplicación, pero no tienes que modificar el código.
Ventajas
La versión 2.0 de Endpoints ofrece varias ventajas, entre las que se incluyen las siguientes:
- Se ha reducido la latencia de las solicitudes.
- Mejor integración con las funciones de App Engine, como los dominios personalizados.
- Nuevas funciones de gestión de APIs.
La versión 2.0 de Endpoints Frameworks no afecta a las interfaces de tu API. Los clientes actuales seguirán funcionando después de la migración sin necesidad de cambiar el código del lado del cliente.
Información general sobre la función
Las siguientes funciones son retrocompatibles con la versión 1.0 de Endpoints:
- Protocolo JSON-REST, que usan todas las bibliotecas de cliente de Google
- Servicio de descubrimiento
- Todas las funciones de autenticación (OAuth2/OpenID Connect)
- Compatibilidad con bibliotecas de cliente para clientes generados
- CORS (para las llamadas de JavaScript que no usan la biblioteca cliente de JavaScript de Google)
- Explorador de APIs
La división del tráfico no está disponible.
Funciones excluidas actualmente
Las siguientes funciones no están disponibles. Si necesita alguna de estas funciones, envíe una solicitud de función.
- Protocolo JSON-RPC, que es obligatorio para los clientes de iOS antiguos. Para crear clientes de iOS para tu API de Endpoints Frameworks versión 2.0, te recomendamos que uses la biblioteca de cliente de APIs de Google para Objective-C para APIs REST.
- ETags automáticas
- Campos
kind
automáticos - Integración en IDE
fields
respuestas parciales- Creación automática de métodos de API PATCH
Migrar de la versión 1.0 de Endpoints
Para migrar desde la versión 1.0, sigue estos pasos:
Crea una subcarpeta llamada
/lib
en el directorio principal de tu aplicación.Instala la biblioteca desde el directorio principal de tu aplicación:
pip install -t lib google-endpoints --ignore-installed
Quita las entradas
- name: endpoints
yversion 1.0
del archivoapp.yaml
de tu aplicación en la secciónlibraries
. Por ejemplo:libraries: - name: endpoints #Remove version: 1.0 #Remove
En la sección
libraries
del archivoapp.yaml
, añade lo siguiente:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11
Endpoints Frameworks requiere estas versiones de las bibliotecas
pycrypto
yssl
.En la sección
handlers
del archivoapp.yaml
, cambia la directivaurl
de- url: /_ah/spi/.*
a- url: /_ah/api/.*
.En el directorio raíz de tu aplicación, crea o modifica un archivo llamado
appengine_config.py
para incluir lo siguiente:from google.appengine.ext import vendor vendor.add('lib')
Comprueba la cadena de versión de la API. La cadena de versión, especificada en el decorador
@endpoints.api(version='v1', ...)
, aparece en la ruta de la API. Si especificas una cadena de versión compatible con el estándar SemVer, solo aparecerá el número de versión principal en la ruta de tu API cuando la implementes. Por ejemplo, una API llamadaecho
con la versión2.1.0
tendría una ruta como/echo/v2
. Si actualizas la APIecho
a la versión2.2.0
y despliegas un cambio retrocompatible, la ruta sigue siendo/echo/v2
. Esto te permite actualizar el número de versión de la API cuando hagas un cambio compatible con versiones anteriores sin que se interrumpan las rutas de tus clientes. Sin embargo, si actualizas la APIecho
a la versión3.0.0
(porque vas a implementar un cambio incompatible), la ruta se cambiará a/echo/v3
.Vuelve a implementar tu aplicación Endpoints Frameworks.
Verificar una nueva implementación
Para verificar que el nuevo framework está sirviendo tráfico, siga estos pasos:
- Envía algunas solicitudes al nuevo despliegue.
- Visita la página de Cloud Logging de tu proyecto.
- Si las solicitudes se muestran con rutas que empiezan por
/_ah/api
, significa que la versión 2.0 de Endpoints Frameworks está sirviendo tu API. Los registros no deberían mostrar ninguna solicitud con rutas que empiecen por/_ah/spi
. Estas solicitudes indican que el proxy de Endpoints versión 1.0 sigue atendiendo solicitudes.
Añadir gestión de APIs
La versión 2.0 de Endpoints Frameworks añade funciones de gestión de APIs, como las siguientes:
- Gestión de claves de API
- Compartir APIs
- Autenticación de usuarios
- Métricas de APIs
- Registros de la API
Para empezar, ve a la página Primeros pasos con Endpoints Frameworks para Python.
Solución de problemas
En esta sección se describen los comportamientos erráticos habituales que se producen al migrar a Endpoints Frameworks 2.0 y las soluciones sugeridas.
La API devuelve errores 404
, pero el Explorador de APIs sigue mostrando las APIs correctamente
Debes eliminar la configuración de la versión 1.0 de Endpoints al migrar a la versión 2.0 de Endpoints Frameworks. Si la configuración antigua sigue presente en la configuración de la aplicación, el servicio Endpoints seguirá tratando la aplicación como una aplicación de la versión 1.0. Es posible que veas solicitudes en los registros de App Engine enviadas a /_ah/spi
, lo que dará lugar a errores HTTP 404
enviados al cliente.
Si están presentes, elimine las siguientes líneas del archivo
app.yaml
:handlers: - url: /_ah/spi/.* script: ...
Comprueba que la sección
handlers
de tu archivoapp.yaml
tenga la ruta correcta:handlers: # The endpoints handler must be mapped to /_ah/api. - url: /_ah/api/.* script: ...
Mensaje de error: ImportError: cannot import name locked_file
Esto ocurre si tus dependencias contienen una versión de la biblioteca oauth2client
que no es compatible con App Engine. Consulta el problema conocido.