O Cloud Endpoints Frameworks era anteriormente denominado Endpoints. Para distinguir as duas versões, esta página refere-se à nova versão como Endpoints Frameworks versão 2.0 e à versão mais antiga como Endpoints versão 1.0. Esta página descreve como migrar uma aplicação do Cloud Endpoints versão 1.0 para a versão 2.0 dos Frameworks do Endpoints. A migração consiste numa alteração da biblioteca e numa alteração da configuração da aplicação, mas não tem de fazer alterações ao código.
Vantagens
A versão 2.0 dos Endpoints oferece várias vantagens, incluindo:
- Latência do pedido reduzida.
- Melhor integração com as funcionalidades do App Engine, como domínios personalizados.
- Novas funcionalidades de gestão de APIs.
A versão 2.0 do Endpoints Frameworks não afeta as interfaces da sua API. Os clientes existentes continuam a funcionar após a migração sem alterações ao código do lado do cliente.
Vista geral das funcionalidades
As seguintes funcionalidades são retrocompatíveis com a versão 1.0 dos Endpoints:
- Protocolo JSON-REST, que é usado por todas as bibliotecas de clientes Google
- Serviço de descoberta
- Todas as funcionalidades de autenticação existentes (OAuth2/OpenID Connect)
- Suporte da biblioteca cliente para clientes gerados
- CORS (para autores de chamadas JavaScript que não usam a biblioteca de cliente JavaScript da Google)
- Explorador de APIs
A divisão de tráfego está indisponível.
Funcionalidades atualmente excluídas
As seguintes funcionalidades estão indisponíveis. Se precisar de alguma destas opções, envie um pedido de funcionalidade.
- Protocolo JSON-RPC, que é necessário para clientes iOS antigos. Para criar clientes iOS para a sua API do Endpoints Frameworks versão 2.0, recomendamos que use a biblioteca de cliente Objective-C das APIs Google para APIs REST.
- ETags automáticos
- Campos
kind
automáticos - Integração de IDE
fields
respostas parciais- Criação automática do método da API PATCH
Migrar da versão 1.0 dos Endpoints
Para migrar da versão 1.0:
Crie uma subpasta denominada
/lib
no diretório principal da sua aplicação.Instale a biblioteca a partir do diretório principal da sua aplicação:
pip install -t lib google-endpoints --ignore-installed
Remova as entradas
- name: endpoints
eversion 1.0
do ficheiroapp.yaml
da sua aplicação na secçãolibraries
. Por exemplo:libraries: - name: endpoints #Remove version: 1.0 #Remove
Na secção
libraries
do ficheiroapp.yaml
, adicione o seguinte:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11
Os frameworks de endpoints requerem estas versões das bibliotecas
pycrypto
essl
.Na secção
handlers
do ficheiroapp.yaml
, altere a diretivaurl
de- url: /_ah/spi/.*
para- url: /_ah/api/.*
.No diretório raiz da sua aplicação, crie ou modifique um ficheiro denominado
appengine_config.py
para incluir o seguinte:from google.appengine.ext import vendor vendor.add('lib')
Verifique a string da versão da API. A string de versão, especificada no decorador
@endpoints.api(version='v1', ...)
, aparece no caminho da API. Se especificar uma string de versão compatível com a norma SemVer, apenas o número da versão principal aparece no caminho da API quando implementa a API. Por exemplo, uma API denominadaecho
com a versão2.1.0
teria um caminho como/echo/v2
. Se atualizar a APIecho
para a versão2.2.0
e implementar uma alteração retrocompatível, o caminho permanece/echo/v2
. Isto permite-lhe atualizar o número da versão da API quando faz uma alteração compatível com versões anteriores sem interromper os caminhos existentes para os seus clientes. No entanto, se atualizar a APIecho
para a versão3.0.0
(porque está a implementar uma alteração interruptiva), o caminho é alterado para/echo/v3
.Volte a implementar a sua aplicação Endpoints Frameworks.
Validar uma nova implementação
Para verificar se a nova estrutura está a publicar tráfego:
- Envie alguns pedidos para a nova implementação.
- Visite a página do Cloud Logging para o seu projeto.
- Se os pedidos forem apresentados com caminhos que começam por
/_ah/api
, significa que a versão 2.0 dos Frameworks de Endpoints está a publicar a sua API. Os registos não devem apresentar pedidos com caminhos que comecem por/_ah/spi
. Estes pedidos indicam que o proxy da versão 1.0 dos Endpoints continua a publicar pedidos.
Adicionar gestão de APIs
A versão 2.0 do Endpoints Frameworks adiciona funcionalidades de gestão de APIs, incluindo:
- Gestão de chaves da API
- Partilha de APIs
- Autenticação do utilizador
- Métricas da API
- Registos da API
Para começar, aceda à página Começar a usar os frameworks de endpoints para Python.
Resolução de problemas
Esta secção descreve comportamentos irregulares comuns ao migrar para a versão 2.0 dos Frameworks de Endpoints e as soluções sugeridas.
A API devolve erros 404
, mas o Explorador de APIs continua a listar as APIs corretamente
Tem de remover a configuração dos pontos finais da versão 1.0 antiga
quando migrar para a versão 2.0 dos Frameworks de pontos finais. Se a configuração antiga ainda estiver presente na configuração da aplicação, o serviço Endpoints continua a tratar a app como uma app da versão 1.0. Pode ver pedidos nos registos do App Engine enviados para /_ah/spi
, o que resulta em erros HTTP 404
enviados para o cliente.
Remova as seguintes linhas do ficheiro
app.yaml
, se estiverem presentes:handlers: - url: /_ah/spi/.* script: ...
Certifique-se de que a secção
handlers
no ficheiroapp.yaml
tem o caminho correto:handlers: # The endpoints handler must be mapped to /_ah/api. - url: /_ah/api/.* script: ...
Mensagem de erro: ImportError: cannot import name locked_file
Isto acontece se as suas dependências contiverem uma versão da biblioteca oauth2client
que não é compatível com o App Engine. Consulte o problema conhecido.