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 2.0 não afeta as interfaces na API. Os clientes atuais continuam a funcionar depois da migração sem alterações 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 "Cloud Logging" do 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.