Gestisci dipendenze

Questa pagina si applica a Apigee e Apigee ibridi.

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.

Crea una dipendenza

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

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_resource_name: RESOURCE_NAME"
      },
      "consumer": {
        // Specify one of the following:
        "operation_resource_name": RESOURCE_NAME
        // OR
        "external_resource_name: RESOURCE_NAME"
      }
  }'

Sostituisci quanto segue:

  • HUB_PROJECT: il nome del progetto host di API Hub. Il progetto host è stato selezionato quando è stato eseguito il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta quando l'API è stato eseguito il provisioning dell'hub.
  • 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 delle operazioni hanno questo formato: projects/PROJECT/locations/LOCATION/apis/API/versions/VERSION/operations/OPERATION

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

    I nomi delle risorse API esterne hanno 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 con tutte le versioni di un'API o elencare tutte le dipendenze associate a una versione specifica.

REST

Per elencare tutte le dipendenze, utilizza l'API List dipendenze:

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 quando è stato eseguito il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta quando l'API è stato eseguito il provisioning dell'hub.

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

Ottieni dettagli delle dipendenze

Questa sezione spiega come ottenere i dettagli relativi alla dipendenza di un'API con l'API REST.

REST

Per visualizzare i dettagli di una dipendenza, utilizza l'API Ottieni i dettagli delle dipendenze:

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 quando è stato eseguito il provisioning dell'hub API.
  • HUB_LOCATION: la località del progetto host. La località è stata scelta quando l'API è stato eseguito il provisioning dell'hub.
  • 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"
}

Eliminare una dipendenza dall'API

Questa sezione spiega come eliminare una dipendenza dall'API.

REST

Per eliminare una dipendenza dall'hub API, utilizza l'API Elimina dipendenza:

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 quando è stato eseguito il provisioning dell'hub API.
  • HUB_LOCATION: la posizione del progetto host. La località è stata scelta quando l'API è stato eseguito il provisioning dell'hub.
  • DEPENDENCY_ID: l'ID della dipendenza da eliminare.

Modifica una dipendenza

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

REST

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

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 dell'hub API. Il progetto host è stato selezionato durante il provisioning dell'hub API.
  • HUB_LOCATION: la località del progetto host. La località è stata scelta quando l'API è stato eseguito il provisioning dell'hub.
  • DEPLOYMENT_ID: l'ID dell'implementazione da modificare.
  • DESCRIPTION: l'unico attributo modificabile è la descrizione.