Depois de configurar o Cloud Endpoints num documento OpenAPI, implementa-o para que o
Endpoints tenha as informações necessárias para gerir a sua API.
Para implementar a configuração do Endpoints, use o comando gcloud
endpoints services deploy
. Este comando usa a infraestrutura de serviços, a plataforma de serviços
fundamentais da Google, usada pelos Endpoints e outros
serviços para criar e gerir APIs e serviços. Esta página descreve como
implementar um documento OpenAPI nos Endpoints.
Pré-requisitos
Como ponto de partida, esta página pressupõe que:
Criou um Google Cloud projeto no qual tem a função de Editor ou Proprietário. Após a implementação inicial, pode conceder a função Editor de configuração de serviços mais restritiva a um utilizador, um grupo ou uma conta de serviço. Consulte o artigo Conceder e revogar acesso à API para mais informações.
Se estiver a usar um nome de domínio personalizado (como
my-api.example.com
), tem de validar o nome de domínio antes de poder implementar o documento OpenAPI.
Preparar a CLI do Google Cloud para a implementação
Use a ferramenta de linha de comandos gcloud
para implementar a configuração. Consulte a
referência gcloud para mais informações sobre os comandos.
Para se preparar para a implementação:
- Instale e inicialize a CLI gcloud.
- Atualize a CLI gcloud:
gcloud components update
- Certifique-se de que a CLI gcloud está autorizada a aceder aos seus dados e
serviços:
gcloud auth login
É aberto um novo separador do navegador e é-lhe pedido que escolha uma conta.
- Defina o projeto predefinido. Substitua
[YOUR-PROJECT-ID]
pelo ID do seu projeto da GCPgcloud config set project [YOUR-PROJECT-ID]
- Se vai implementar o seu back-end da API no Kubernetes ou no Kubernetes Engine, execute o seguinte comando para adquirir novas credenciais do utilizador a usar para as credenciais predefinidas da aplicação. As credenciais do utilizador são necessárias para autorizar
kubectl
. É aberto um novo separador do navegador e é-lhe pedido que escolha uma conta.gcloud auth application-default login
A validar a sintaxe openapi.json
O ficheiro do documento OpenAPI pode estar no formato YAML ou JSON. Se estiver no formato JSON, recomendamos que valide a sintaxe antes de implementar o ficheiro. Para
verificar se o seu openapi.json
é um ficheiro JSON bem formatado, pode abri-lo num
editor de texto de validação JSON, como o vim
, usar um serviço de
análise estática JSON online ou usar o Python, por exemplo:
python -m json.tool openapi.json
Para melhorar a legibilidade, pode formatar o ficheiro JSON:
python -m json.tool input.json > output.json
Substitua input.json
pelo caminho para o ficheiro openapi.json
. output.json
é o ficheiro JSON formatado.
Validar o seu documento OpenAPI
Atualmente, nem todas as construções da OpenAPI são suportadas pelos Cloud Endpoints. Antes de implementar, pode validar o seu documento OpenAPI.
Para validar o seu documento OpenAPI:
Mude o diretório para a localização que contém o seu documento OpenAPI.
Confirme o Google Cloud projeto onde quer criar o serviço. Se estiver a usar um nome de domínio personalizado (como
myapi.example.com
), certifique-se de que valida o ID do projeto devolvido pelo seguinte comando para que o serviço não seja criado no projeto errado.gcloud config list project
Se precisar de alterar o projeto predefinido, execute o seguinte comando e substitua
[YOUR_PROJECT_ID]
pelo Google Cloud ID do projeto no qual quer criar o serviço:gcloud config set project [YOUR_PROJECT_ID]
Execute o seguinte comando e substitua
[YOUR_OPENAPI_DOCUMENT]
pelo nome do documento OpenAPI que descreve a sua API:gcloud endpoints services deploy [YOUR_OPENAPI_DOCUMENT] --validate-only
Em seguida, o comando gcloud
chama a API Service Management para criar um serviço gerido com o nome que especificou no campo host
no seu documento OpenAPI. Quando especifica a flag --validate-only
, continua a ser criado um serviço, mas a configuração não é implementada. Não existe uma forma de validar o seu documento OpenAPI sem criar um serviço. Embora possa
eliminar o serviço,
a gestão de serviços impede a criação de um serviço com o mesmo
nome durante um período de aproximadamente 30 dias.
Implementar o documento OpenAPI
Quando estiver tudo pronto para implementar a sua API, executa a CLI Google Cloud, que usa o Service Management para carregar a configuração da API e para criar (ou atualizar) um serviço gerido.
Para implementar o seu documento OpenAPI:
Mude o diretório para a localização que contém o seu documento OpenAPI.
Valide o ID do projeto devolvido pelo seguinte comando para se certificar de que o serviço não é criado no projeto errado.
gcloud config list project
Se precisar de alterar o projeto predefinido, execute o seguinte comando e substitua
[YOUR_PROJECT_ID]
pelo Google Cloud ID do projeto no qual quer criar o serviço::gcloud config set project [YOUR_PROJECT_ID]
Execute o seguinte comando e substitua
[YOUR_OPENAPI_DOCUMENT]
pelo nome do documento OpenAPI que descreve a sua API:gcloud endpoints services deploy [YOUR_OPENAPI_DOCUMENT]
Quando executa o comando anterior pela primeira vez, o Service Management cria um novo serviço de Endpoints no projeto predefinido com um nome que corresponde ao texto especificado no campo host
no seu documento OpenAPI e carrega a configuração do serviço.
À medida que cria e configura o serviço, a gestão de serviços envia informações para o terminal. Após a conclusão com êxito, é apresentada uma linha semelhante à seguinte, que apresenta o ID da configuração do serviço e o nome do serviço:
Service Configuration [2017-02-13r0] uploaded for service [echo-api.endpoints.example-project-12345.cloud.goog]
No exemplo anterior, 2017-02-13r0
é o ID de configuração do serviço e echo-api.endpoints.example-project-12345.cloud.goog
é o nome do serviço.
Após uma implementação bem-sucedida, pode ver a API na página Endpoints > Serviços na Google Cloud consola.
Se receber uma mensagem de erro, consulte o artigo Resolução de problemas de implementação da configuração dos Endpoints.
A voltar a implementar
Sempre que alterar algo no seu documento OpenAPI, certifique-se de que o implementa novamente para que o Endpoints tenha a versão mais recente da configuração do serviço da sua API. Não precisa de voltar a implementar nem reiniciar o ESP se o tiver implementado anteriormente com a opção rollout
definida como managed
.
Esta opção
configura o ESP para usar a configuração do serviço implementada mais recente. Quando
especifica esta opção, até 5 minutos após implementar uma nova configuração de serviço, o ESP deteta a alteração e começa a usá-la automaticamente. Recomendamos que especifique esta opção em vez de um ID de configuração específico para o ESP usar.
Após a implementação da configuração inicial dos Endpoints, pode conceder a um utilizador, a uma conta de serviço ou a um grupo uma função que lhe permita reimplementar a configuração dos Endpoints. Consulte o artigo Conceder e revogar acesso à API para mais informações.
O que se segue?
- Implementar o back-end da API
- Implementação no Kubernetes
- Executar o ESP localmente ou noutra plataforma
- Obter o nome do serviço e o ID de configuração