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
/libno diretório principal do seu aplicativo.Instale a biblioteca a partir do diretório principal do aplicativo:
pip install -t lib google-endpoints --ignore-installedRemova as entradas
- name: endpointseversion 1.0do arquivoapp.yamldo seu aplicativo na seçãolibraries. Exemplo:libraries: - name: endpoints #Remove version: 1.0 #RemoveNa seção
librariesdo arquivoapp.yaml, adicione o seguinte:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11O Endpoints Frameworks requer essas versões das bibliotecas
pycryptoessl.Na seção
handlersdo arquivoapp.yaml, altere a diretivaurlde- url: /_ah/spi/.*para- url: /_ah/api/.*.No diretório raiz de seu aplicativo, crie ou modifique um arquivo chamado
appengine_config.pypara 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 chamadaechocom a versão2.1.0teria um caminho como/echo/v2. Se você atualizar a APIechopara a versão2.2.0e 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 APIechopara 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
handlersno seu arquivoapp.yamltenha 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.