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 (em inglês) 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 as métricas da API na página Endpoints > Serviços no Console do Google Cloud.
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 às solicitações, mas não vai aparecer na página Endpoints > Services no Console do Google Cloud. Além disso, as funcionalidades oferecidas pelo Endpoints, como geração de registros, monitoramento e definição de cotas, não vão estar disponíveis.
Para adicionar gerenciamento à sua API:
Configure seu arquivo Maven
pom.xml
ou seu arquivo Gradlebuild.gradle
como descrito em Como configurar os arquivos de versão.Certifique-se de definir o código do projeto do Google Cloud nos arquivos de versão.
Maven
Pesquise
<endpoints.project.id>
e substituaYOUR_PROJECT_ID
pelo ID do projeto do Google Cloud. Exemplo:<endpoints.project.id>example-project-12345</endpoints.project.id>
Gradle
-
Pesquise
def projectId
e substituaYOUR_PROJECT_ID
pelo ID do projeto do Google Cloud. Exemplo:def projectId = 'example-project-12345'
- Verifique se o arquivo
build.gradle
contém a tarefareplaceProjectId
, que define o código do projeto nos arquivosappengine-web.xml
eweb.xml
.
-
Pesquise
No arquivo
web.xml
do 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:openApiDocs
Gradle
gradle endpointsOpenApiDocs
Implante o documento do OpenAPI:
gcloud endpoints services deploy openapi.json
A 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.json
novamente, o número de revisão será incrementado no ID de configuração do serviço.Caso precise exibir o ID de configuração do serviço novamente, execute o comando a seguir, mas substitua
YOUR_PROJECT_ID
pelo 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.xml
para definir o valor de uma variável de ambiente:Substitua
${endpoints.project.id}
pelo ID do projeto do 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 console do Google Cloud do projeto: