Como criar uma API
Pré-requisito
Antes de criar uma API no Gateway de API, verifique que você tenha:
- preparado seu ambiente de desenvolvimento conforme descrito em Como configurar seu ambiente de desenvolvimento.
Requisitos do ID da API
Muitos dos comandos gcloud
mostrados abaixo exigem que você especifique o ID da API, no formato: API_ID.
A API Gateway aplica os seguintes requisitos aos IDs da API:
- Os valores têm comprimento máximo de 63 caracteres.
- Use somente letras minúsculas, números ou hifens
- Não pode começar com um traço.
- Não pode conter um sublinhado.
Como criar uma API
Para criar uma API:
Valide o código do projeto retornado do seguinte comando para garantir que o serviço não seja criado no projeto incorreto.
gcloud config list project
Se você precisar alterar o projeto padrão, execute o seguinte comando e substitua PROJECT_ID pelo ID do projeto do Google Cloud em que você quer criar o serviço:
gcloud config set project PROJECT_ID
Se o ID do projeto contiver dois pontos (
:
), consulte Projetos com escopo de domínio para mais detalhes sobre como criar uma API no projeto.Veja a ajuda do comando
apis create
:gcloud api-gateway apis create --help
Execute este comando para criar a API:
gcloud api-gateway apis create API_ID --project=PROJECT_ID
onde:
- API_ID especifica o ID da nova API. Consulte os requisitos de ID da API para ver as diretrizes de nomenclatura.
- PROJECT_ID especifica o ID do projeto do Google Cloud.
Durante a criação da API, o gateway de API gera informações para o terminal.
Após a conclusão, o comando a seguir pode ser usado para ver detalhes sobre a nova API:
gcloud api-gateway apis describe API_ID --project=PROJECT_ID
Este comando mostra o seguinte:
createTime: '2020-02-29T21:52:20.297426875Z' displayName: API_ID managedService: MANAGED_SERVICE_NAME.apigateway.PROJECT_ID.cloud.goog name: projects/PROJECT_ID/locations/global/apis/API_ID state: ACTIVE updateTime: '2020-02-29T21:52:20.647923711Z'
Opções do gcloud
A CLI do Google Cloud usa muitas opções, incluindo as descritas na Referência do gcloud. Além disso, para o gateway de API, é possível definir as seguintes opções ao criar uma API:
--async
: retorna o controle para o terminal imediatamente, sem aguardar a conclusão da operação.--display-name=NAME
: especifica o nome de exibição da API, o que significa o nome mostrado na IU. Não use espaços no nome. Use hifens e sublinhados. O valor padrão é API_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...
: especifica rótulos associados à configuração da API.--managed-service
: especifica um serviço gerenciado preexistente (por exemplo, um serviço do Endpoints) para a API
Projetos de escopo de domínio
Se o projeto tiver escopo para seu domínio, o código do projeto incluirá o nome do domínio seguido por dois pontos (:
:example.com:my-project
). É preciso fornecer um serviço gerenciado válido ao criar uma API em um projeto com escopo de domínio.
Se estiver usando gcloud
, forneça o nome do serviço gerenciado com a sinalização --managed-service
, conforme descrito em opções do gcloud.
Como listar APIs
Liste todos os jobs de um projeto.
gcloud api-gateway apis list --project=PROJECT_ID
Esse comando retorna a saída no formato:
NAME DISPLAY_NAME MANAGED_SERVICE STATE projects/PROJECT_ID/locations/global/apis/API_ID API_ID MANAGED_SERVICE_NAME.apigateway.PROJECT_ID.cloud.goog ACTIVE
Use o ID do projeto e o ID da API para receber informações detalhadas sobre ela:
gcloud api-gateway apis describe API_ID --project=PROJECT_ID
Como atualizar uma API
Após a criação, é possível atualizar os rótulos e o nome de exibição de uma API.
Use as seguintes opções de gcloud
para atualizar uma API:
--display-name
--update-labels
--clear-labels
--remove-labels
Exemplo:
gcloud api-gateway apis update API_ID --project=PROJECT_ID \ --update-labels=a=1,b=2
Use o seguinte comando para ver todas as opções de atualização:
gcloud api-gateway apis update --help
Excluir uma API
Para excluir uma API, você precisa:
- Exclua as configurações associadas à API.
- Exclua a API:
Para excluir uma API:
Determine a lista de configurações da API associada à API:
gcloud api-gateway api-configs list --api=API_ID --project=PROJECT_ID
Exclua cada configuração de API associada a ela:
gcloud api-gateway api-configs delete CONFIG_ID --api=API_ID --project=PROJECT_ID
Exclua a API:
gcloud api-gateway apis delete API_ID --project=PROJECT_ID