Gestion des dépendances

Cette page s'applique à Apigee et à Apigee hybrid.

Ce document explique comment créer et gérer des dépendances entre des API enregistrées. Les dépendances vous aident à voir les relations entre les API. Consultez la page Présentation des dépendances.

Créer une dépendance

Vous pouvez créer une entité de dépendance avec l'API REST.

REST

Pour créer une dépendance à l'aide de l'API Créer une dépendance, procédez comme suit :

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

Remplacez les éléments suivants :

  • HUB_PROJECT : nom du projet hôte dans API Hub. Le projet hôte a été sélectionné lors du provisionnement du hub d'API.
  • HUB_LOCATION : emplacement du projet hôte. L'emplacement a été choisi lors du provisionnement du hub d'API.
  • DEPENDENCY_ID (facultatif) : identifiant de la dépendance. S'il n'est pas fourni, un ID généré par le système sera utilisé. Le nom doit être une chaîne de 4 à 500 caractères, dont les caractères valides sont /[a-z][A-Z][0-9]-_.
  • DESCRIPTION (facultatif) : brève description de la dépendance.
  • RESOURCE_NAME : (obligatoire) nom de la ressource d'une opération dans le hub d'API ou d'une API externe, selon l'attribut spécifié.

    Les noms de ressources d'opérations suivent le format suivant : projects/PROJECT/locations/LOCATION/apis/API/versions/VERSION/operations/OPERATION

    Exemple de ressource d'opération : "projects/myproject/locations/us-central1/apis/payments-api/versions/locationv1/operations/getlocation".

    Les noms de ressources des API externes suivent le format suivant : projects/PROJECT/locations/LOCATION/externalApis/EXTERNAL_API

    Exemple de ressource d'API externe : "projects/myproject/locations/us-central1/externalApis/petstore".

Exemple de réponse :

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

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

Répertorier les dépendances

Cette section explique comment lister les dépendances. Vous pouvez répertorier toutes les dépendances associées à toutes les versions d'une API ou répertorier toutes les dépendances associées à une version spécifique.

REST

Pour répertorier toutes les dépendances, utilisez l'API Lister les dépendances :

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"

Remplacez les éléments suivants :

  • HUB_PROJECT : nom du projet hôte dans API Hub. Le projet hôte a été sélectionné lors du provisionnement du hub d'API.
  • HUB_LOCATION : emplacement du projet hôte. L'emplacement a été choisi lors du provisionnement du hub d'API.

Exemple de résultat :

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

Obtenir les détails des dépendances

Cette section explique comment obtenir des informations sur une dépendance d'API avec l'API REST.

REST

Pour afficher les détails d'une dépendance, utilisez l'API Obtenir les détails d'une dépendance :

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"

Remplacez les éléments suivants :

  • HUB_PROJECT : nom du projet hôte dans API Hub. Le projet hôte a été sélectionné lors du provisionnement d'API Hub.
  • HUB_LOCATION : emplacement du projet hôte. L'emplacement a été choisi lors du provisionnement d'API Hub.
  • DEPENDENCY_ID : ID unique de la dépendance.

Exemple de réponse :

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

Supprimer une dépendance d'API

Cette section explique comment supprimer une dépendance d'API.

REST

Pour supprimer une dépendance du hub d'API, utilisez l'API Supprimer une dépendance :

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"

Remplacez les éléments suivants :

  • HUB_PROJECT : nom du projet hôte dans API Hub. Le projet hôte a été sélectionné lors du provisionnement du hub d'API.
  • HUB_LOCATION : emplacement du projet hôte. L'emplacement a été choisi lors du provisionnement du hub d'API.
  • DEPENDENCY_ID : ID de la dépendance à supprimer.

Modifier une dépendance

Cette section explique comment modifier une dépendance. La description est le seul attribut modifiable.

REST

Pour modifier un déploiement, utilisez l'API Appliquer un correctif à la dépendance :

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

Remplacez les éléments suivants :

  • HUB_PROJECT : nom du projet hôte dans API Hub. Le projet hôte a été sélectionné lors du provisionnement du hub d'API.
  • HUB_LOCATION : emplacement du projet hôte. L'emplacement a été choisi lors du provisionnement du hub d'API.
  • DEPLOYMENT_ID : ID du déploiement à modifier.
  • DESCRIPTION : le seul attribut modifiable est la description.