Cloud Endpoints Frameworks antes se llamaba Endpoints. Para distinguir entre ambas versiones, en esta página, la versión nueva se denomina Endpoints Frameworks versión 2.0, mientras que la versión anterior es Endpoints versión 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 consta de cambios de biblioteca y de configuración de la aplicación, pero no es necesario modificar tu código.
Beneficios
Endpoints versión 2.0 ofrece una serie de beneficios como los siguientes:
- Latencia de solicitud reducida
- Mejor integración con las características de App Engine, como los dominios personalizados
- Nuevas características de administración de API
Endpoints Frameworks versión 2.0 no afecta las interfaces hacia tu API. Los clientes existentes continúan trabajando después de la migración sin ningún cambio en el código del lado del cliente.
Descripción general de las funciones
Las siguientes características son retrocompatibles con Endpoints versión 1.0:
- El protocolo JSON-REST que usan todas las bibliotecas cliente de Google
- Servicio para Discovery
- Todas las funciones de autenticación existentes (OAuth2/OpenID Connect)
- Compatibilidad para biblioteca cliente para clientes generados
- CORS (para los emisores de JavaScript que no utilizan la biblioteca cliente de JavaScript de Google)
- Explorador de API
La división de tráfico no está disponible.
Funciones excluidas actualmente
Las siguientes características no están disponibles. Si necesitas alguna de ellas, envía una solicitud de función.
- Protocolo JSON-RPC, que se requiere para los clientes iOS heredados. Si deseas crear clientes iOS para tu API de Endpoints Frameworks versión 2.0, te recomendamos que uses la Biblioteca cliente Objective-C de la API de Google para las API de REST.
- ETags automáticos
- Campos
kind
automáticos - Integración con IDE
- Respuestas parciales de
fields
- Creación automática del método PATCH API
Migrar de Endpoints versión 1.0
Para migrar desde la versión 1.0:
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
, agrega 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 que incluya lo siguiente:from google.appengine.ext import vendor vendor.add('lib')
Verifica la string de versión de la API. Tu string de versión, especificada en el decorador
@endpoints.api(version='v1', ...)
, aparece en la ruta de tu API. Si especificas una string 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 de acceso como/echo/v2
. Si actualizas la APIecho
a la versión2.2.0
y, luego, implementas un cambio retrocompatible, la ruta permanecerá como/echo/v2
. Esto te permite actualizar el número de versión de la API cuando realizas un cambio retrocompatible sin dañar las rutas existentes para tus clientes. Sin embargo, si actualizas la APIecho
a la versión3.0.0
(porque implementas un cambio importante), la ruta cambia a/echo/v3
.Vuelve a implementar tu aplicación de Endpoints Frameworks.
Verifica una nueva implementación
Para verificar que el nuevo marco de trabajo entrega el tráfico, haz lo siguiente:
- Envía algunas solicitudes a la implementación nueva.
- Visita la página de Cloud Logging para tu proyecto.
- Si se muestran solicitudes con rutas que comienzan con
/_ah/api
, significa que ahora Endpoints Frameworks versión 2.0 entrega tu API. Los registros no deben mostrar ninguna solicitud con rutas que comiencen con/_ah/spi
. Estas solicitudes indican que el proxy de Endpoints versión 1.0 aún entrega solicitudes.
Agrega administración de API
Endpoints Frameworks versión 2.0 agrega características de administración de API, incluidas las siguientes:
- Administración de claves de API
- Uso compartido de API
- Autenticación de usuarios
- Métricas de API
- Registros de API
Para comenzar, ve a la página sobre cómo comenzar a usar Endpoints Frameworks para Python.
Soluciona problemas
En esta sección, se describen comportamientos erráticos comunes en la migración a Endpoints Frameworks versión 2.0 y las soluciones sugeridas.
La API muestra errores 404
, pero el Explorador de API aún enumera las API correctamente
Debes quitar la configuración anterior de Endpoints versión 1.0 cuando migras a Endpoints Frameworks versión 2.0. Si la configuración anterior aún está presente en la configuración de la aplicación, el servicio de Endpoints aún considera la app como versión 1.0. Es posible que veas solicitudes en tus registros de App Engine que se envían a /_ah/spi
, lo que genera errores HTTP 404
en el cliente.
Quita las siguientes líneas del archivo
app.yaml
si están presentes:handlers: - url: /_ah/spi/.* script: ...
Asegúrate de que la sección
handlers
de tu archivoapp.yaml
tenga la ruta de acceso 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 sucede si tus dependencias contienen una versión de la biblioteca oauth2client
que es incompatible con App Engine. Consulta el problema conocido.