O Cloud Endpoints Frameworks oferece recursos de gerenciamento de APIs que são comparáveis com os recursos que o Extensible Service Proxy (ESP) fornece para o Cloud Endpoints. Os frameworks do Endpoints incluem um gateway de API integrado que intercepta todas as solicitações e realiza as verificações necessárias, como autenticação, antes de encaminhar a solicitação ao back-end da API. Quando o back-end responde, o Endpoints Frameworks coleta e relata a telemetria. É possível visualizar métricas da API na página Endpoints > Serviços no Google Cloud console.
Os recursos de gerenciamento de APIs disponíveis no Endpoints Frameworks incluem os itens a seguir:
Para que sua API seja gerenciada pelo Cloud Endpoints, implante um documento do OpenAPI que descreva sua API usando a versão 2.0 da Especificação OpenAPI. Nesta página, você aprenderá como gerar e implantar um documento OpenAPI que ative o Endpoints para gerenciar sua API.
Se você não adicionar o gerenciamento da API, ela ainda vai atender a solicitações, mas não vai aparecer na página Endpoints > Serviços noGoogle Cloud console. Além disso, a funcionalidade fornecida pelo Endpoints, como geração de registros, monitoramento e definição de cotas, não estará disponível.
Para adicionar gerenciamento à sua API:
Configure seu arquivo Maven
pom.xmlou seu arquivo Gradlebuild.gradlecomo descrito em Como configurar os arquivos de versão.Certifique-se de definir o ID do projeto Google Cloud nos arquivos de build.
Maven
Pesquise
<endpoints.project.id>e substituaYOUR_PROJECT_IDpelo ID do projeto Google Cloud . Exemplo:<endpoints.project.id>example-project-12345</endpoints.project.id>Gradle
-
Pesquise
def projectIde substituaYOUR_PROJECT_IDpelo ID do projeto Google Cloud . Exemplo:def projectId = 'example-project-12345' - Verifique se o arquivo
build.gradlecontém a tarefareplaceProjectId, que define o código do projeto nos arquivosappengine-web.xmleweb.xml.
-
Pesquise
No arquivo
web.xmldo projeto da API, adicione a configuração de filtro do servlet de gerenciamento de API:Modifique a configuração da compilação do projeto da API:
Maven
-
Adicione as dependências de gerenciamento da API:
-
Inclua o plug-in que você pode usar para gerar bibliotecas de clientes e o documento da OpenAPI,
openapi.json:
Gradle
-
Adicione as dependências de gerenciamento da API:
-
Declare a dependência externa para que o plug-in seja recuperado do Maven Central:
-
Use o plug-in Gradle do Endpoints Framework no lado do servidor, que gera o documento do OpenAPI:
-
Configure o nome do serviço do Endpoints:
-
Depois de modificar as dependências, limpe o projeto e crie a API:
Maven
mvn clean mvn package
Gradle
gradle clean gradle build
Gere o documento da OpenAPI,
openapi.json:Maven
mvn endpoints-framework:openApiDocsGradle
gradle endpointsOpenApiDocsImplante o documento do OpenAPI:
gcloud endpoints services deploy openapi.jsonA primeira vez que você implanta
openapi.json, um novo serviço do Endpoints é criado com o nomeYOUR_PROJECT_ID.appspot.com. Com a conclusão bem-sucedida, uma linha semelhante à seguinte exibe o código de configuração e o nome do serviço:Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com
No exemplo anterior,
2017-02-13r0é o ID de configuração do serviço. Esse ID de configuração do serviço consiste em um registro de data e número de revisão. Se você implementaropenapi.jsonnovamente, o número de revisão será incrementado no ID de configuração do serviço.Se for preciso exibir o ID de configuração do serviço novamente, execute o comando a seguir, substituindo
YOUR_PROJECT_IDpelo ID do projeto do Google Cloud :gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
É possível criar seu próprio documento OpenAPI e implantá-lo em vez de usar um gerado. Simplesmente substitua
openapi.json, visto acima, pelo caminho para seu documento da OpenAPI. Para mais informações sobre como escrever um documento do OpenAPI, consulte Visão geral do OpenAPI.Edite seu arquivo
appengine-web.xmlpara definir o valor de uma variável de ambiente:Substitua
${endpoints.project.id}pelo ID do seu projeto Google Cloud . Exemplo:<env-var name="ENDPOINTS_SERVICE_NAME" value="example-project-12345.appspot.com" />Implante o aplicativo novamente.
Maven
mvn appengine:deploy
Gradle
gradle appengineDeploy
Faça algumas solicitações à API para testá-la.
Para ver as métricas da API, abra a página Endpoints > Serviços no Google Cloud console do projeto: