Gestisci dipendenze

Questa pagina si applica ad Apigee e Apigee hybrid.

Questo documento descrive come creare e gestire le dipendenze tra le API registrate. Le dipendenze ti aiutano a vedere le relazioni tra le API. Consulta Introduzione alle dipendenze.

L'interfaccia utente ti consente di visualizzare a colpo d'occhio la relazione tra le API di consumer e fornitore, dove il consumer dipende da un'operazione del fornitore. Vedi Figura 1.

UI delle dipendenze dell'hub API.
Figura 1. L'interfaccia utente della dipendenza dell'API mostra le coppie di consumer/fornitori, dove un'operazione del consumer dipende da un'operazione del fornitore. Puoi visualizzare facilmente i dettagli di ogni dipendenza. Puoi anche filtrare la tabella in base alle operazioni dei consumatori e/o dei fornitori.

Crea una dipendenza

Puoi creare un'entità di dipendenza con l'API REST.

Console

Per creare una dipendenza:

  1. Nella console Google Cloud, vai alla pagina Supply chain in API Hub.

    Vai ad API Hub
  2. Fai clic su Crea dipendenza.
  3. Aggiungi una descrizione della dipendenza.
  4. In Seleziona risorsa fornitore, seleziona Operazione.
  5. Seleziona l'API che fornisce l'operazione.
  6. Seleziona la versione dell'API che fornisce l'operazione.
  7. Seleziona l'operazione fornita al consumatore. Ad esempio: GET-/items.
  8. In Seleziona risorsa consumer, seleziona Operazione.
  9. Seleziona l'API che utilizza l'operazione del fornitore.
  10. Seleziona la versione dell'API che utilizza l'operazione.
  11. Seleziona l'operazione che utilizza l'API fornita. Ad esempio: GET-/categories
  12. Se vuoi, fornisci i valori per gli attributi definiti dall'utente definiti in Impostazioni.
  13. Fai clic su Crea. La nuova dipendenza viene visualizzata nella pagina dell'elenco delle dipendenze (Figura 1).

REST

Per creare una nuova dipendenza utilizzando l'API Crea una dipendenza:

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"
      }
  }'

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta al momento del provisioning dell'hub API.
  • DEPENDENCY_ID: (facoltativo) l'identificatore della dipendenza. Se non viene fornito, verrà utilizzato un ID generato dal sistema. Il nome deve essere una stringa di 4-500 caratteri, dove i caratteri validi sono /[a-z][A-Z][0-9]-_.
  • DESCRIPTION: (facoltativo) una breve descrizione della dipendenza.
  • RESOURCE_NAME: (obbligatorio) il nome della risorsa di un'operazione nell'hub API o di un'API esterna, a seconda dell'attributo specificato.

    I nomi delle risorse di operazioni seguono questo formato: projects/PROJECT/locations/LOCATION/apis/API/versions/VERSION/operations/OPERATION

    Esempio di risorsa di operazione: "projects/myproject/locations/us-central1/apis/payments-api/versions/locationv1/operations/getlocation".

    I nomi delle risorse API esterne seguono questo formato: projects/PROJECT/locations/LOCATION/externalApis/EXTERNAL_API

    Esempio di risorsa API esterna: "projects/myproject/locations/us-central1/externalApis/petstore".

Risposta di esempio:

{
  "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"
 }

Esempio 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"
      }
  }'

Elenca le dipendenze

Questa sezione spiega come elencare le dipendenze. Puoi elencare tutte le dipendenze associate a tutte le versioni di un'API o elencare tutte le dipendenze associate a una versione specifica.

Console

Per elencare le dipendenze:

  1. Nella console Google Cloud, vai alla pagina Supply chain in API Hub. L'elenco delle dipendenze note viene visualizzato nella pagina Catena di approvvigionamento.

    Vai ad API Hub
  2. Nel campo Filtro, se necessario, specifica le operazioni del fornitore e/o del consumatore per restituire le dipendenze pertinenti. La funzionalità di filtro consente di trovare tutte le dipendenze collegate alle operazioni specificate.

REST

Per elencare tutte le dipendenze, utilizza l'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"

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta al momento del provisioning dell'hub API.

Esempio di output:

{
  "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"
          }
      }
  ]
 }

Visualizzare i dettagli della dipendenza

Questa sezione spiega come ottenere i dettagli di una dipendenza dell'API con l'API REST. Puoi visualizzare i dettagli dei consumatori e dei fornitori, nonché i dettagli sulla dipendenza, inclusi gli errori che potrebbero indicare, ad esempio, una dipendenza non funzionante.

Console

Per ottenere una dipendenza:

  1. Nella console Google Cloud, vai alla pagina Supply chain in API Hub.

    Vai ad API Hub
  2. Nel campo Filtro, se necessario, specifica le operazioni del fornitore e/o del consumatore per restituire le dipendenze pertinenti. La funzionalità di filtro consente di trovare tutte le dipendenze collegate alle operazioni specificate.
  3. Individua una dipendenza di tuo interesse e fai clic su Visualizza dettagli.

REST

Per visualizzare i dettagli di una dipendenza, utilizza l'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"

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta al momento del provisioning dell'hub API.
  • DEPENDENCY_ID: l'ID univoco della dipendenza.

Risposta di esempio:

{
  "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"
}

Ecco una risposta di esempio, in cui la condizione di errore indica che l'operazione del fornitore è stata rimossa (una dipendenza non funzionante):

{
  "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
  }
}

Eliminare una dipendenza dall'API

Questa sezione spiega come eliminare una dipendenza dall'API.

Console

Per eliminare una dipendenza:

  1. Nella console Google Cloud, vai alla pagina Supply chain in API Hub.

    Vai ad API Hub
  2. Nel campo Filtro, se necessario, specifica le operazioni del fornitore e/o del consumatore per restituire le dipendenze pertinenti. La funzionalità di filtro consente di trovare tutte le dipendenze collegate alle operazioni specificate.
  3. Individua una dipendenza di tuo interesse e fai clic sull'icona di eliminazione per eliminarla.

REST

Per eliminare una dipendenza dall'hub API, utilizza l'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"

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta al momento del provisioning dell'hub API.
  • DEPENDENCY_ID: l'ID della dipendenza da eliminare.

Modificare una dipendenza

Questa sezione spiega come modificare una dipendenza. L'unico attributo modificabile è la descrizione della dipendenza.

Console

Per modificare un'API:

  1. Nella console Google Cloud, vai alla pagina Supply chain in API Hub.

    Vai all'hub API
  2. Nel campo Filtro, se necessario, specifica le operazioni del fornitore e/o del consumatore per restituire le dipendenze pertinenti. La funzionalità di filtro consente di trovare tutte le dipendenze collegate alle operazioni specificate.
  3. Individua la dipendenza di interesse e fai clic su Visualizza dettagli.
  4. Nella pagina Dipendenza, puoi modificare la descrizione e gli attributi. Utilizza l'icona di modifica per attivare la modifica in questi campi.
  5. Fai clic su Salva.

REST

Per modificare un deployment, utilizza l'API Patch dependencies:

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
    {'

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta al momento del provisioning dell'hub API.
  • DEPLOYMENT_ID: l'ID dell'implementazione da modificare.
  • DESCRIPTION: l'unico attributo modificabile è la descrizione.