Show Menu
SUJETS×

Mettre à jour une ressource

Vous pouvez modifier ou mettre à jour des ressources dans le conteneur locataire à l’aide d’une requête PATCH. Le registre des Schémas prend en charge toutes les opérations de correctif JSON standard, y compris l’ajout, la suppression et le remplacement.
Pour plus d’informations sur le correctif JSON, y compris les opérations disponibles, voir la documentation officielle sur le correctif JSON.
Si vous souhaitez remplacer une ressource entière par de nouvelles valeurs au lieu de mettre à jour des champs individuels, consultez le document sur le remplacement d'une ressource à l'aide d'une opération PUT.

Ajouter de mixins à un schéma

L'une des opérations PATCH les plus courantes consiste à ajouter des mixins précédemment définis à un schéma XDM, comme le montre l'exemple ci-dessous.
Format d’API
PATCH /tenant/{RESOURCE_TYPE}/{RESOURCE_ID} 

Paramètre
Description
{RESOURCE_TYPE}
Type de ressource à mettre à jour à partir de la bibliothèque de Schémas. Les types valides sont datatypes , mixins , schemas et classes .
{RESOURCE_ID}
URI codé en URL $id ou meta:altId de la ressource.
Requête
A l’aide d’une opération PATCH, vous pouvez mettre à jour un schéma afin d’inclure des champs définis dans un mixin créé précédemment. Pour ce faire, vous devez exécuter une requête PATCH au schéma à l’aide de son meta:altId URI ou de son $id URI codé en URL.
Le corps de la requête comprend l'opération ( op ) que vous souhaitez effectuer, où ( path ) vous souhaitez effectuer l'opération et les informations ( value ) que vous souhaitez inclure dans l'opération. Dans cet exemple, la $id valeur du mixin est ajoutée aux champs meta:extends et allOf du schéma de cible.
curl -X PATCH\
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'content-type: application/json' \
  -d '[
        { "op": "add", "path": "/meta:extends/-", "value":  "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"},
        { "op": "add", "path": "/allOf/-", "value":  {"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"}}
      ]'

Réponse
La réponse montre que les deux opérations ont été exécutées avec succès. Le mixin $id a été ajouté à la meta:extends baie et une référence ( $ref ) au mixin $id apparaît maintenant dans la allOf baie.
{
    "title": "Property Information",
    "description": "Property-related information.",
    "type": "object",
    "allOf": [
        {
            "$ref": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
        },
        {
            "$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
        }
    ],
    "meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
    "meta:abstract": false,
    "meta:extensible": false,
    "meta:extends": [
        "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
        "https://ns.adobe.com/xdm/data/record",
        "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
    ],
    "meta:containerId": "tenant",
    "imsOrg": "{IMS_ORG}",
    "meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
    "meta:xdmType": "object",
    "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
    "version": "1.1",
    "meta:resourceType": "schemas",
    "meta:registryMetadata": {
        "repo:createDate": 1552088461236,
        "repo:lastModifiedDate": 1552088649634,
        "xdm:createdClientId": "{CREATED_CLIENT}",
        "xdm:repositoryCreatedBy": "{CREATED_BY}"
    }
}

Mettre à jour des champs individuels pour une ressource

Vous pouvez également envoyer des requêtes PATCH qui apportent plusieurs modifications à des champs individuels au sein d'une ressource de registre de Schéma.
Format d’API
PATCH /tenant/{RESOURCE_TYPE}/{RESOURCE_ID} 

Paramètre
Description
{RESOURCE_TYPE}
Type de ressource à mettre à jour à partir de la bibliothèque de Schémas. Les types valides sont datatypes , mixins , schemas et classes .
{RESOURCE_ID}
URI codé en URL $id ou meta:altId de la ressource.
Requête
L’organisme de demande comprend l’opération ( op ), l’emplacement ( path ) et les informations ( value ) nécessaires pour mettre à jour le mixin. Cette demande met à jour le mixin Détails de la propriété afin de supprimer le champ "propertyCity" et d’ajouter un nouveau champ "propertyAddress" qui référence un type de données standard contenant des informations d’adresse. Il ajoute également un nouveau champ "emailAddress" qui fait référence à un type de données standard avec des informations de messagerie.
curl -X PATCH \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/mixins/_{TENANT_ID}.mixins.e49cbb2eec33618f686b8344b4597ecf \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'content-type: application/json' \
  -d '[
          { "op": "remove", "path": "/definitions/vehicles/properties/_{TENANT_ID}/properties/propertyCity"},
          { "op": "add", "path": "/definitions/property/properties/_{TENANT_ID}/properties/propertyAddress", "value":
            {
              "title": "Property Address",
              "description": "Address of the Property",
              "$ref": "https://ns.adobe.com/xdm/common/address"
            } 
          },
          { "op": "add", "path": "/definitions/property/properties/_{TENANT_ID}/properties/emailAddress", "value":
            {
              "title": "Property Email Address",
              "description": "Email address of the Property",
              "$ref": "https://ns.adobe.com/xdm/context/emailaddress"
            } 
          },
      ]'

Réponse
Une réponse réussie montre que les opérations ont été menées à bien car les nouveaux champs sont présents et que le champ "propertyCity" a été supprimé.
{
    "title": "Property Details",
    "description": "Detailed information related to the properties owned and operated by the company.",
    "type": "object",
    "meta:intendedToExtend": [
        "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
    ],
    "definitions": {
        "property": {
            "properties": {
                "_{TENANT_ID}": {
                    "type": "object",
                    "properties": {
                        "propertyName": {
                            "type": "string",
                            "title": "Property Name",
                            "description": "Name of the property",
                            "meta:xdmType": "string"
                        },
                        "phoneNumber": {
                            "title": "Phone Number",
                            "description": "Primary phone number for the property.",
                            "type": "string",
                            "meta:xdmType": "string"
                        },
                        "propertyType": {
                            "type": "string",
                            "title": "Property Type",
                            "description": "Type and primary use of property.",
                            "enum": [
                                "retail",
                                "yoga",
                                "fitness"
                            ],
                            "meta:enum": {
                                "retail": "Retail Store",
                                "yoga": "Yoga Studio",
                                "fitness": "Fitness Center"
                            },
                            "meta:xdmType": "string"
                        },
                        "propertyConstruction": {
                            "$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/24c643f618647344606222c494bd0102"
                        },
                        "propertyAddress": {
                            "title": "Property Address",
                            "description": "Address of the Property",
                            "$ref": "https://ns.adobe.com/xdm/common/address"
                        },
                        "emailAddress": {
                            "title": "Property Email Address",
                            "description": "Email address of the Property",
                            "$ref": "https://ns.adobe.com/xdm/context/emailaddress"
                        }
                    },
                    "meta:xdmType": "object"
                }
            },
            "type": "object",
            "meta:xdmType": "object"
        }
    },
    "allOf": [
        {
            "$ref": "#/definitions/property"
        }
    ],
    "meta:abstract": true,
    "meta:extensible": true,
    "meta:containerId": "tenant",
    "imsOrg": "{IMS_ORG}",
    "meta:altId": "_{TENANT_ID}.mixins.e49cbb2eec33618f686b8344b4597ecf",
    "meta:xdmType": "object",
    "$id": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf",
    "version": "1.1",
    "meta:resourceType": "mixins",
    "meta:registryMetadata": {
        "repo:createDate": 1552088205144,
        "repo:lastModifiedDate": 1552089776535,
        "xdm:createdClientId": "{CREATED_CLIENT}",
        "xdm:repositoryCreatedBy": "{CREATED_BY}"
    }
}