Appel de l'API REST

Dans ce guide, vous apprendrez à appeler l'API REST Private Catalog Producer.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Deployment Manager and Compute Engine APIs.

    Enable the APIs

Configurer l'authentification

En tant qu'administrateur cloud, vous pouvez effectuer des appels REST pour effectuer des actions sur Private Catalog. Pour commencer, configurez vos identifiants d'accès :

  1. Obtenez votre ID client et votre code secret.
  2. Obtenez votre jeton d'accès.
  3. Veillez à envoyer https://www.googleapis.com/auth/cloud-platform dans le paramètre de champ d'application.

Créer un catalogue

Pour créer un catalogue, exécutez la commande suivante et remplacez <token> par votre jeton d'accès OAuth2 et <organization-ID> par votre ID d'organisation :

curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d "{parent:"//cloudresourcemanager.googleapis.com/organizations/<organization-ID>", display_name:"Mobile catalog", description: "description"}" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs

Le corps de la réponse contient des données semblables à ce qui suit :

{
  "name": "operations/ccb.515502c5-81ad-4226-8037-1b802eed8f69"
}

Il s'agit du nom de l'opération. Vous pouvez obtenir l'ID d'opération à partir du nom de l'opération en supprimant le préfixe operation/. Dans l'exemple de réponse précédent, l'ID d'opération est ccb.515502c5-81ad-4226-8037-1b802eed8f69. Vous pouvez utiliser l'ID d'opération pour vérifier l'état de la création du catalogue.

Vérifier l'état d'une opération de création de catalogue

Pour créer un catalogue, exécutez la commande suivante et remplacez <operation-ID> par l'ID d'opération de la réponse précédente :

curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/operations/<operation-ID>

Répertorier les catalogues de votre organisation

Pour répertorier les catalogues auxquels vous avez accès, exécutez la commande suivante dans le champ d'application d'une organisation et remplacez <organization-number> par le numéro de l'organisation :

curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs?parent=//cloudresourcemanager.googleapis.com/organizations/<organization-number>

Le corps de la réponse contient des données semblables à ce qui suit :

{
  "catalogs": [
    {
      "name": "catalogs/<catalog-ID>",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
      "displayName": "Mobile catalog",
      "description": "Mobile-related applications",
      "createTime": "2019-01-01T22:05:19.541Z",
      "updateTime": "2019-01-01T22:05:26.097Z"
    },
    {
      "name": "catalogs/<catalog ID>",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
      "displayName": "Development tools",
      "description": "Applications and tools for developers",
      "createTime": "2019-01-06T00:08:06.090Z",
      "updateTime": "2019-01-06T00:08:08.069Z"
    },
    {
      "name": "catalogs/<catalog ID>",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
      "displayName": "Data science catalog",
      "description": "Applications for data scientists",
      "createTime": "2019-01-06T00:09:45.319Z",
      "updateTime": "2019-01-06T00:09:48.050Z"
    },
    {
      "name": "catalogs/<catalog ID>",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
      "displayName": "Training catalog",
      "description": "Training applications and software",
      "createTime": "2019-01-06T22:13:38.261Z",
      "updateTime": "2019-01-06T22:13:46.291Z"
    },
    {
      "name": "catalogs/<catalog-ID>",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
      "displayName": "Media catalog",
      "description": "Applications for handling audio and visual media",
      "createTime": "2019-01-07T00:15:11.949Z",
      "updateTime": "2019-01-07T00:15:15.426Z"
    }
  ]
}

Obtenir des informations sur un catalogue spécifique

Pour obtenir des informations sur un catalogue, exécutez la commande suivante et remplacez <catalog-ID> par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :

curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>

Le corps de la réponse contient des données semblables à ce qui suit :

{
  "name": "catalogs/<catalog-ID>",
  "parent": "//cloudresourcemanager.googleapis.com/organizations/<organizaton-ID>",
  "displayName": "Data science catalog",
  "description": "Applications for data scientists",
  "createTime": "2019-01-01T22:05:19.541Z",
  "updateTime": "2019-01-01T22:05:26.097Z"
}

Créer un produit

Pour créer un produit, exécutez la commande suivante et remplacez <catalog-ID> par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :

curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_create_product_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products

L'exemple suivant illustre le contenu du fichier /tmp/rest_create_product_request :

{
  name:"catalogs/<catalog-ID>/products/<product-name>",
  asset_type:"google.deploymentmanager.Template",
  display_metadata:{
    name:"<product-name>",
    description:"Sample Description"
  }
}

Répertorier les produits d'un catalogue

Pour répertorier les produits d'un catalogue, exécutez la commande suivante et remplacez <catalog-ID> par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :

curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products

Le corps de la réponse contient des données semblables à ce qui suit :

{
  "products": [
    {
      "name": "catalogs/<catalog-ID>/products/dm-product",
      "assetType": "google.deploymentmanager.Template",
      "displayMetadata": {
        "name": "sample-metadata-name",
        "description": "sample-metadata-description",
        "tagline": "sample-metadata-tagline",
        "support_info": "sample-metadata-support-info"
      },
      "createTime": "2019-01-04T19:36:02.573Z"
    },
    {
      "name": "catalogs/<catalog-ID>/products/listingonly",
      "assetType": "google.private-catalog.ListingOnly",
      "displayMetadata": {
        "name": "listing-based product",
        "description": "description",
        "tagline": "tagline",
        "support_info": "support_info",
        "signup_url": "https://cloud.google.com/launcher",
        "documentations": [
          {
            "url": "https://cloud.google.com/launcher"
          }
        ]
      },
      "createTime": "2019-01-06T00:25:44.722Z"
    }
  ]
}

Créer une version du produit

Pour créer une version du produit, exécutez la commande suivante et remplacez <catalog-ID> par un ID de catalogue et <product-name> par le nom du produit pour lequel vous souhaitez créer une version :

curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_create_version_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products/<product-name>/versions

L'exemple suivant illustre le contenu du fichier /tmp/rest_create_version_request :

{
  name: "catalogs/<catalog-ID>/products/<product-name>/versions/v1",
  description: "v1",
  original_asset: {
        imports: [
                {
                  name: "my-template",
                  content: "resources:\n name: \'awesome template\'\n  properties:\n",
                },
                {
                  name: "my-template.schema",
                  content: ""
                }
        ],
        mainTemplate: "my-template",
        templateFileType: "JINJA"
  }
}

Le corps de la réponse contient des données sur l'opération obtenue, semblables à la sortie suivante :

{
  "name": "operations/cvb.efcd831d-257d-43f7-8650-f7016c7469cb"
}

Répertorier les versions d'un produit

Pour répertorier les versions d'un produit, exécutez la commande suivante en remplaçant <catalog-ID> par l'ID du catalogue et <product-name> par le nom du produit pour lequel vous souhaitez répertorier les versions :

curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products/<product-name>/versions

Le corps de la réponse contient des données semblables à ce qui suit :

{
  "versions": [
    {
      "name": "catalogs/<catalog-ID>/products/<product-name>/versions/v1",
      "createTime": "2019-01-04T19:37:47.519Z",
      "updateTime": "2019-01-04T19:37:47.519Z"
    }
  ]
}

Importer une icône de produit

Pour importer une icône de produit, exécutez la commande suivante en remplaçant <catalog-ID> par l'ID du catalogue et <product-name> par le nom du produit pour lequel vous souhaitez importer une icône :

curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_upload_icon_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-id>/products/<product-name>/icons:upload

L'exemple suivant illustre le contenu du fichier /tmp/rest_upload_icon_request :

{
  icon_bytes: "iVBORw0KGgoA...Jggg=="
}