O Cloud Endpoints Frameworks se chamava apenas Endpoints. Para distinguir as duas versões, a mais nova será chamada de Endpoints Frameworks 2.0 e a mais antiga, Endpoints 1.0. Nesta página, você verá como migrar um aplicativo do Cloud Endpoints 1.0 para o Endpoints Frameworks 2.0. Essa migração consiste em uma mudança de biblioteca e de configuração de aplicativo, mas não será necessário alterar seu código.
Benefícios
O Endpoints 2.0 traz uma série de benefícios, incluindo:
- latência reduzida de solicitação;
- melhor integração com os recursos do App Engine (como domínios personalizados);
- novos recursos de gerenciamento de API.
O Endpoints Frameworks versão 2.0 não afeta as interfaces com sua API. Os clientes atuais continuam funcionando depois da migração sem nenhuma mudança de código no lado do cliente.
Visão geral do recurso
Os seguintes recursos são compatíveis com versões anteriores do Endpoints 1.0:
- Protocolo JSON-REST, usado por todas as bibliotecas de cliente do Google
- Serviço de descoberta
- Todos os recursos de autenticação (OAuth2/OpenID Connect)
- Suporte para biblioteca de cliente para clientes gerados
- CORS (para autores da chamada ao JavaScript que não usam a biblioteca cliente do Google JavaScript)
- API Explorer
A divisão de tráfego não está disponível.
Recursos excluídos
Os seguintes recursos estão indisponíveis. Se você precisar de algum deles, envie uma solicitação de recurso (em inglês).
- Protocolo JSON-RPC, obrigatório para clientes iOS legados. Para criar clientes iOS para a API do Endpoints Frameworks 2.0, recomenda-se usar a biblioteca de cliente Objective-C de APIs do Google para APIs REST (em inglês)
- ETags automáticos
- Campos automáticos
kind
- Integração de IDE
- Respostas parciais de
fields
- Criação automática de método da API PATCH
Como migrar do Endpoints 1.0
Para migrar da versão 1.0:
Crie uma subpasta chamada
/lib
no diretório principal do seu aplicativo.Instale a biblioteca a partir do diretório principal do aplicativo:
pip install -t lib google-endpoints --ignore-installed
Remova as entradas
- name: endpoints
eversion 1.0
do arquivoapp.yaml
do seu aplicativo na seçãolibraries
. Exemplo:libraries: - name: endpoints #Remove version: 1.0 #Remove
Na seção
libraries
do arquivoapp.yaml
, adicione o seguinte:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11
O Endpoints Frameworks requer essas versões das bibliotecas
pycrypto
essl
.Na seção
handlers
do arquivoapp.yaml
, altere a diretivaurl
de- url: /_ah/spi/.*
para- url: /_ah/api/.*
.No diretório raiz de seu aplicativo, crie ou modifique um arquivo chamado
appengine_config.py
para incluir o seguinte:from google.appengine.ext import vendor vendor.add('lib')
Verifique a string da versão da API. Sua string de versão, especificada no decorador
@endpoints.api(version='v1', ...)
, aparece no caminho da API. Se você especificar uma string de versão compatível com o SemVer padrão , apenas o número da versão principal aparecerá no caminho da API quando você implantar a API. Por exemplo, uma API chamadaecho
com a versão2.1.0
teria um caminho como/echo/v2
. Se você atualizar a APIecho
para a versão2.2.0
e implantar uma alteração compatível com as versões anteriores, o caminho permanecerá/echo/v2
. Com essas ações, você atualiza o número da versão da API durante a alteração compatível com versões anteriores sem alterar os caminhos atuais para seus clientes. Mas se você atualizar a APIecho
para a versão3.0.0
(porque está implantando uma alteração interruptiva), o caminho será alterado para/echo/v3
.Implante o aplicativo Endpoints Frameworks novamente.
Como verificar uma nova implantação
Para verificar se o novo framework está disponibilizando tráfego:
- Envie alguns pedidos para a nova implantação.
- Acesse a página do Cloud Logging do seu projeto.
- Se as solicitações forem exibidas com caminhos que começam com
/_ah/api
, o Endpoints Frameworks versão 2.0 exibirá a API. Os registros não podem mostrar solicitações com caminhos que começam com/_ah/spi
. Elas indicam que o proxy do Endpoints 1.0 ainda está exibindo solicitações.
Como adicionar o gerenciamento de API
O Endpoints Frameworks 2.0 adiciona recursos de gerenciamento de API, incluindo:
- gerenciamento de chave de API;
- Compartilhamento da API
- Autenticação de usuários
- Métricas da API
- registros da API.
Para começar, acesse a página Primeiros passos com o Endpoints Frameworks para Python.
Solução de problemas
Nesta seção, você verá os comportamentos erráticos comuns durante a migração para o Endpoints Frameworks versão 2.0 e as soluções sugeridas.
A API retorna erros 404
, mas o API Explorer continua a listar as APIs corretamente
É obrigatória a remoção da antiga configuração do Endpoints 1.0 na migração para o Endpoints Frameworks 2.0. Se a configuração antiga ainda estiver presente na configuração do aplicativo, o serviço do Endpoints continuará a tratá-lo como versão 1.0. É possível ver solicitações, nos registros do App Engine, enviadas para /_ah/spi
, que resultam em erros HTTP 404
enviados ao cliente.
Remova as seguintes linhas do arquivo
app.yaml
, se estiverem presentes:handlers: - url: /_ah/spi/.* script: ...
Certifique-se de que a seção
handlers
no seu arquivoapp.yaml
tenha 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
Isso acontece se suas dependências contêm uma versão da biblioteca oauth2client
que é incompatível com o Google App Engine. Consulte o problema conhecido.