Como criar uma API

Pré-requisito

Antes de criar uma API no Gateway de API, verifique que você tenha:

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:

  1. 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.

  2. Veja a ajuda do comando apis create:

    gcloud api-gateway apis create --help
  3. 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.

  4. 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:

  1. Determine a lista de configurações da API associada à API:

    gcloud api-gateway api-configs list --api=API_ID --project=PROJECT_ID
  2. Exclua cada configuração de API associada a ela:

    gcloud api-gateway api-configs delete CONFIG_ID --api=API_ID --project=PROJECT_ID
  3. Exclua a API:

    gcloud api-gateway apis delete API_ID --project=PROJECT_ID

A seguir