Gerenciar dependências

Esta página se aplica à Apigee e à Apigee híbrida.

Este documento descreve como criar e gerenciar dependências entre as APIs registradas. As dependências ajudam você a ver as relações entre as APIs. Consulte Introdução às dependências.

A interface permite que você veja rapidamente a relação entre as APIs do consumidor e do fornecedor, em que o consumidor depende de uma operação do fornecedor. Veja a Figura 1.

Interface de dependências do hub de APIs.
Figura 8. A interface de dependência da API mostra pares de consumidor/fornecedor, em que uma operação de consumidor depende de uma operação de fornecedor. É possível detalhar para conferir os detalhes de cada dependência. Também é possível filtrar a tabela por operações de consumidor e/ou fornecedor.

Criar uma dependência

É possível criar uma entidade de dependência com a API REST.

Console

Para criar uma dependência:

  1. No console do Google Cloud, acesse a página Cadeia de suprimentos no Hub de APIs.

    Acesse o hub de API
  2. Clique em Criar dependência.
  3. Adicione uma descrição da dependência.
  4. Em Selecionar recurso do fornecedor, selecione Operação.
  5. Selecione a API que fornece a operação.
  6. Selecione a versão da API que fornece a operação.
  7. Selecione a operação fornecida ao consumidor. Por exemplo, GET-/items.
  8. Em Selecionar recurso do consumidor, selecione Operação.
  9. Selecione a API que consome a operação do fornecedor.
  10. Selecione a versão da API que consome a operação.
  11. Selecione a operação que usa a API fornecida. Por exemplo: GET-/categories
  12. Opcionalmente, forneça valores para todos os atributos definidos pelo usuário que foram determinados em "Configurações".
  13. Clique em Criar. A nova dependência aparece na página de lista "Dependências" (Figura 1).

REST

Para criar uma dependência usando a API Create a dependency:

curl -X POST 'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies?dependency_id=DEPENDENCY_ID' \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H 'Content-Type: application/json' \
  --d '{
      "description": "DESCRIPTION",
      "supplier": {
          // Specify one of the following:
          "operation_resource_name": RESOURCE_NAME
          // OR
          "external_api_resource_name: RESOURCE_NAME"
      },
      "consumer": {
        // Specify one of the following:
        "operation_resource_name": RESOURCE_NAME
        // OR
        "external_api_resource_name: RESOURCE_NAME"
      }
  }'

Substitua:

  • HUB_PROJECT: o nome do projeto host do hub da API. O projeto host foi selecionado quando o hub de API foi provisionado.
  • HUB_LOCATION: o local do projeto host. O local foi escolhido quando o hub da API foi provisionado.
  • DEPENDENCY_ID: (opcional) o identificador da dependência. Caso não seja informado, um ID gerado pelo sistema será usado. O nome precisa ser uma string de 4 a 500 caracteres, em que os caracteres válidos são /[a-z][A-Z][0-9]-_.
  • DESCRIPTION: (opcional) uma breve descrição da dependência.
  • RESOURCE_NAME: (obrigatório) o nome do recurso de uma operação no hub de APIs ou de uma API externa, dependendo do atributo especificado.

    Os nomes de recursos de operação seguem este formato: projects/PROJECT/locations/LOCATION/apis/API/versions/VERSION/operations/OPERATION

    Exemplo de recurso de operação: "projects/myproject/locations/us-central1/apis/payments-api/versions/locationv1/operations/getlocation".

    Os nomes de recursos de API externos seguem este formato: projects/PROJECT/locations/LOCATION/externalApis/EXTERNAL_API

    Exemplo de recurso de API externa: "projects/myproject/locations/us-central1/externalApis/petstore".

Exemplo de resposta:

{
  "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
  "consumer": {
      "displayName": "POST - /v2/user",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
  },
  "supplier": {
      "displayName": "POST - /v2/pet",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/addpet"
  },
  "state": "VALIDATED",
  "description": "Dependency from user to pet API",
  "discoveryMode": "MANUAL",
  "createTime": "2024-04-17T19:33:31.664226Z",
  "updateTime": "2024-04-17T19:33:31.664226Z"
 }

Exemplo de REST

curl -X POST 'https://apihub.googleapis.com/v1/projects/myproject/locations/us-central1/dependencies?dependency_id=user-to-pet' \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H 'Content-Type: application/json' \
  --d '{
      "description": "Dependency from user to pet API",
      "consumer": {
          "operation_resource_name": "projects/myproject/locations/us-central1/apis/payments-api/versions/paymentv1/operations/createuser"
      },
      "supplier": {
          "operation_resource_name": "projects/myproject/locations/us-central1/apis/pet-api/versions/petstorev1/operations/addpet"
      }
  }'

Listar dependências

Esta seção explica como listar as dependências. É possível listar todas as dependências associadas a todas as versões de uma API ou listar todas as implantações associadas a uma versão específica.

Console

Para listar dependências:

  1. No console do Google Cloud, acesse a página Cadeia de suprimentos no Hub de APIs. A lista de dependências conhecidas aparece na página da cadeia de suprimento.

    Acesse o hub de API
  2. No campo Filtro, se necessário, especifique as operações de fornecedor e/ou consumidor para retornar dependências relevantes. O recurso de filtro permite encontrar todas as dependências vinculadas às operações especificadas.

REST

Para listar todas as dependências, use a API List dependencies:

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies"
      -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X GET -H "Content-Type: application/json"

Substitua:

  • HUB_PROJECT: o nome do projeto host do hub da API. O projeto host foi selecionado quando o hub de API foi provisionado.
  • HUB_LOCATION: o local do projeto host. O local foi escolhido quando o hub da API foi provisionado.

Exemplo de resposta:

{
  "dependencies": [
      {
          "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
          "consumer": {
              "displayName": "POST - /v2/user",
              "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
          },
          "supplier": {
              "displayName": "POST - /v2/pet",
              "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/addpet"
          }
      }
  ]
 }

Conferir detalhes da dependência

Esta seção explica como conferir os detalhes de uma dependência de API com a API REST. É possível conferir detalhes do consumidor e do fornecedor, além de detalhes da dependência, incluindo erros que podem indicar, por exemplo, uma dependência corrompida.

Console

Para conseguir uma dependência:

  1. No console do Google Cloud, acesse a página Cadeia de suprimentos no Hub de APIs.

    Acesse o hub de API
  2. No campo Filtro, se necessário, especifique as operações de fornecedor e/ou consumidor para retornar dependências relevantes. O recurso de filtro permite encontrar todas as dependências vinculadas às operações especificadas.
  3. Localize uma dependência de interesse e clique em Ver detalhes.

REST

Para conferir os detalhes de uma dependência, use a API Get dependency details:

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies/DEPENDENCY_ID"
  -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X GET -H "Content-Type: application/json"

Substitua:

  • HUB_PROJECT: o nome do projeto host do hub da API. O projeto host foi selecionado quando o hub de API foi provisionado.
  • HUB_LOCATION: o local do projeto host. O local foi escolhido quando o hub da API foi provisionado.
  • DEPENDENCY_ID: o ID exclusivo da dependência.

Exemplo de resposta:

{
  "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
  "consumer": {
      "displayName": "POST - /v2/user",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
  },
  "supplier": {
      "displayName": "POST - /v2/pet",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/addpet"
  },
  "state": "VALIDATED",
  "description": "Dependency from user to pet API",
  "discoveryMode": "MANUAL",
  "createTime": "2024-04-17T19:33:31.215978712Z",
  "updateTime": "2024-04-17T19:33:31.737505297Z"
}

Confira um exemplo de resposta em que a condição de erro indica que a operação do fornecedor foi removida (uma dependência corrompida):

{
  "name": "projects/common-dev-15/locations/us-central1/dependencies/user-to-pet",
  "consumer": {
      "displayName": "POST - /v2/user",
      "operationResourceName": "projects/common-dev-15/locations/us-central1/apis/payments-api/versions/2ff89c88-e8b6-48c4-a1c2-bdbb2a929bde/operations/createuser"
  },
  "supplier": {
      "displayName": "POST - /v2/pet",
      "operationResourceName": "projects/common-dev-15/locations/us-central1/apis/payments-api/versions/2ff89c88-e8b6-48c4-a1c2-bdbb2a929bde/operations/addpet"
  },
  "state": "VALIDATED",
  "description": "Dependency from user to pet API",
  "discoveryMode": "MANUAL",
  "createTime": "2024-04-17T19:33:31.215978712Z",
  "updateTime": "2024-04-17T19:33:31.737505297Z",
  {
    "error": "SUPPLIER_NOT_FOUND",
    "errorTime": 2024-05-18T20:23:42.465324Z
  }
}

Excluir uma dependência de API

Esta seção explica como excluir uma dependência de API.

Console

Para excluir uma dependência, faça o seguinte:

  1. No console do Google Cloud, acesse a página Cadeia de suprimentos no Hub de APIs.

    Acesse o hub de API
  2. No campo Filtro, se necessário, especifique as operações de fornecedor e/ou consumidor para retornar dependências relevantes. O recurso de filtro permite encontrar todas as dependências vinculadas às operações especificadas.
  3. Localize uma dependência de interesse e clique no ícone de exclusão para excluir a dependência.

REST

Para excluir uma dependência do hub de API, use a API Delete dependency:

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies/DEPENDENCY_ID"
  -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X DELETE -H "Content-Type: application/json"

Substitua:

  • HUB_PROJECT: o nome do projeto host do hub da API. O projeto host foi selecionado quando o hub de API foi provisionado.
  • HUB_LOCATION: o local do projeto host. O local foi escolhido quando o hub da API foi provisionado.
  • DEPENDENCY_ID: o ID da dependência a ser excluída.

Editar uma dependência

Nesta seção, explicamos como editar uma dependência. O único atributo editável é a descrição da dependência.

Console

Para editar uma API:

  1. No console do Google Cloud, acesse a página Cadeia de suprimentos no Hub de APIs.

    Acesse o hub de API
  2. No campo Filtro, se necessário, especifique as operações de fornecedor e/ou consumidor para retornar dependências relevantes. O recurso de filtro permite encontrar todas as dependências vinculadas às operações especificadas.
  3. Localize a dependência de interesse e clique em Ver detalhes.
  4. Na página Dependência, é possível editar a descrição e os atributos. Use o ícone de edição para permitir a edição desses campos.
  5. Clique em Salvar.

REST

Para editar uma dependência, use a API Patch deployment:

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies/DEPENDENCY_ID"
    -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X PATCH -H "Content-Type: application/json"
    '{
      'description': DESCRIPTION
    {'

Substitua:

  • HUB_PROJECT: o nome do projeto host do hub da API. O projeto host foi selecionado quando o hub de API foi provisionado.
  • HUB_LOCATION: o local do projeto host. O local foi escolhido quando o hub da API foi provisionado.
  • DEPLOYMENT_ID: o ID da implantação a ser editada.
  • DESCRIPTION: o único atributo editável é a descrição.