Os frameworks do Cloud Endpoints oferecem funcionalidades de gestão de APIs comparáveis às funcionalidades que o proxy de serviço extensível (ESP) oferece para o Cloud Endpoints. Os Endpoints Frameworks incluem um gateway de API integrado que interceta todos os pedidos e executa todas as verificações necessárias, como a autenticação, antes de encaminhar o pedido para o back-end da API. Quando o back-end responde, o Endpoints Frameworks recolhe e comunica telemetria. Pode ver as métricas da sua API na página Endpoints > Serviços na Google Cloud consola.
As funcionalidades de gestão de APIs disponíveis nos Frameworks de Endpoints incluem:
Para que a sua API seja gerida pelos Endpoints, tem de implementar um documento OpenAPI que descreva a sua API através da versão 2.0 da especificação OpenAPI. Esta página descreve como gerar e implementar um documento OpenAPI que permite que os Endpoints geram a sua API.
Se não adicionar a gestão de APIs, a sua API continua a processar pedidos, mas não aparece na página Endpoints > Serviços naGoogle Cloud consola, e a funcionalidade fornecida pelos Endpoints, como o registo, a monitorização e a definição de quotas, não está disponível.
Para adicionar a gestão de APIs à sua API:
Configure o ficheiro
pom.xml
do Maven ou o ficheirobuild.gradle
do Gradle, conforme descrito em Configurar os ficheiros de compilação.Certifique-se de que define o Google Cloud ID do projeto nos ficheiros de compilação.
Maven
Pesquise
<endpoints.project.id>
e substituaYOUR_PROJECT_ID
pelo seu Google Cloud ID do projeto. Por exemplo:<endpoints.project.id>example-project-12345</endpoints.project.id>
Gradle
-
Pesquise
def projectId
e substituaYOUR_PROJECT_ID
pelo seu Google Cloud ID do projeto. Por exemplo:def projectId = 'example-project-12345'
-
Certifique-se de que o ficheiro
build.gradle
contém a tarefareplaceProjectId
, que define o ID do projeto nos ficheirosappengine-web.xml
eweb.xml
.
-
Pesquise
No ficheiro
web.xml
do projeto da API, adicione a configuração do filtro do servlet de gestão de APIs:Modifique a configuração de compilação do projeto da API:
Maven
-
Adicione as dependências de gestão de APIs:
-
Inclua o plug-in que pode usar para gerar bibliotecas cliente e o documento OpenAPI,
openapi.json
:
Gradle
-
Adicione as dependências de gestão de APIs:
-
Declare a dependência externa para que o plug-in seja obtido a partir do Maven Central:
-
Use o plug-in Gradle dos Frameworks de Endpoints do lado do servidor, que gera o documento OpenAPI:
-
Configure o nome do serviço Endpoints:
-
Depois de modificar as dependências, limpe o projeto e, em seguida, crie a API:
Maven
mvn clean mvn package
Gradle
gradle clean gradle build
Gerar o documento OpenAPI,
openapi.json
:Maven
mvn endpoints-framework:openApiDocs
Gradle
gradle endpointsOpenApiDocs
Implemente o documento OpenAPI:
gcloud endpoints services deploy openapi.json
Quando implementa o
openapi.json
pela primeira vez, é criado um novo serviço do Endpoints com o nomeYOUR_PROJECT_ID.appspot.com
. Após a conclusão bem-sucedida, é apresentada uma linha semelhante à seguinte com o ID de configuração do 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 da configuração do serviço. O ID de configuração do serviço consiste numa indicação de data/hora seguida de um número de revisão. Se implementar oopenapi.json
novamente, o número de revisão é incrementado no ID de configuração do serviço.Se precisar de apresentar novamente o ID de configuração do serviço, execute o seguinte comando, mas substitua
YOUR_PROJECT_ID
pelo ID do projeto do seu projeto Google Cloud :gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
Pode criar o seu próprio documento OpenAPI e implementá-lo, em vez de usar um gerado. Basta substituir
openapi.json
acima pelo caminho para o seu documento OpenAPI. Para mais informações sobre como escrever um documento OpenAPI, consulte a vista geral do OpenAPI.Edite o ficheiro
appengine-web.xml
para definir o valor de uma variável de ambiente:Substitua
${endpoints.project.id}
pelo ID do seu Google Cloud projeto. Por exemplo:<env-var name="ENDPOINTS_SERVICE_NAME" value="example-project-12345.appspot.com" />
Volte a implementar a sua aplicação.
Maven
mvn appengine:deploy
Gradle
gradle appengineDeploy
Teste a sua API fazendo alguns pedidos à mesma.
Para ver as métricas da API, abra a página Endpoints > Serviços na Google Cloud consola do seu projeto: