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 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 exibirá solicitações, mas não aparecerá na página Endpoints > Services doGoogle 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 Google Cloud ID do projeto nos arquivos de versão.
Maven
Pesquise
<endpoints.project.id>e substituaYOUR_PROJECT_IDpelo Google Cloud ID do projeto. Exemplo:<endpoints.project.id>example-project-12345</endpoints.project.id>Gradle
-
Pesquise
def projectIde substituaYOUR_PROJECT_IDpelo Google Cloud ID do projeto. Exemplo:def projectId = 'example-project-12345' -
Verifique se o arquivo
build.gradlecontém a tarefareplaceProjectId, que define o ID 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 do build 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 ID de configurações de serviç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 das configurações de serviço. Esse ID de configurações de serviço consiste em um registro de data e hora seguido por um número de revisão. Ao implantar oopenapi.jsonnovamente, o número de revisão será incrementado no ID de configurações de serviço.Se for preciso exibir o código de configuração do serviço novamente, execute o comando a seguir, substituindo
YOUR_PROJECT_IDpelo ID do projeto do seu Google Cloud projeto: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 Google Cloud ID do projeto. 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 visualizar suas métricas de API, abra a página Endpoints > Serviços no Google Cloud console do projeto: