L'API HTTP Assets permet de créer-read-update-delete (CRUD) des opérations sur les ressources numériques, y compris sur les métadonnées, les rendus et les commentaires, ainsi que du contenu structuré utilisant les fragments de contenu Experience Manager. Elle est exposée sous /api/assets
et est implémentée en tant qu’API REST. Elle inclut la prise en charge des fragments de contenu.
Pour accéder à l’API, procédez comme suit :
https://[hostname]:[port]/api.json
.https://[hostname]:[server]/api/assets.json
.La réponse de l’API est un fichier JSON pour certains types MIME et un code de réponse pour tous les types MIME. La réponse JSON est facultative et peut ne pas être disponible, par exemple pour les fichiers PDF. Vous pouvez faire appel au code de réponse pour d’autres analyses ou actions.
Après l’heure de désactivation, une ressource et ses rendus ne sont plus disponibles via l’interface web Assets ni par le biais de l’API HTTP. L’API renvoie un message d’erreur 404 si l’heure d’activation se situe dans le futur ou si l’heure de désactivation se situe dans le passé.
Tous les appels d’API liés au chargement ou à la mise à jour des ressources ou des fichiers binaires en général (tels que les rendus) sont obsolètes pour un déploiement d’AEM as a Cloud Service Pour charger des fichiers binaires, utilisez plutôt des API de chargement binaire direct.
Un fragment de contenu est un type spécial de ressource. Il permet d’accéder aux données structurées, telles que les textes, les nombres, les dates, etc. Comme il existe plusieurs différences entre les ressources standard
(telles que les images ou les documents), certaines règles supplémentaires s’appliquent à la gestion des fragments de contenu.
Pour plus d’informations, voir Prise en charge des fragments de contenu dans l’ Experience Manager Assets API HTTP.
L'API HTTP Assets expose deux éléments principaux, les dossiers et les ressources (pour les ressources standard). Il expose également des éléments plus détaillés pour les modèles de données personnalisés décrivant le contenu structuré dans les fragments de contenu. Voir Modèles de données de fragments de contenu pour plus d’informations.
Les dossiers sont comparables aux répertoires des systèmes de fichiers traditionnels. Ils font office de conteneurs pour d’autres dossiers ou ressources. Les dossiers se composent des éléments suivants :
Entités : les entités d’un dossier sont ses éléments enfants qui peuvent, à leur tour, être des dossiers et des ressources.
Propriétés :
name
est le nom du dossier. Il est identique au dernier segment du chemin d’URL, sans l’extension.title
est un titre facultatif du dossier pouvant être affiché au lieu de son nom.Certaines propriétés de dossier ou de ressource sont associées à un préfixe différent. Le préfixe jcr
de jcr:title
, jcr:description
et jcr:language
est remplacé par le préfixe dc
. Par conséquent, dans le JSON renvoyé, dc:title
et dc:description
contiennent respectivement les valeurs de jcr:title
et jcr:description
.
Les dossiers Liens présentent trois liens :
self
: lien vers lui-même.parent
: lien vers le dossier parent.thumbnail
: (facultatif) lien vers une miniature de dossier.Dans Experience Manager, une ressource contient les éléments suivants :
Pour plus d’informations sur les éléments des fragments de contenu, voir Prise en charge de fragments de contenu dans l’API HTTP Experience Manager Assets.
Dans Experience Manager, un dossier comprend les composants suivants :
L'API HTTP Assets comprend les fonctionnalités suivantes :
Pour faciliter la lecture, la notation cURL complète n’est pas utilisée dans les exemples suivants. En fait, la notation est liée à Resty qui est un wrapper de script pour cURL
.
Récupère une représentation Siren d’un dossier existant et de ses entités enfants (sous-dossiers ou ressources).
Requête : GET /api/assets/myFolder.json
Codes de réponse : les codes de réponse sont les suivants :
Réponse : la classe de l’entité renvoyée est une ressource ou un dossier. Les propriétés des entités contenues représentent un sous-ensemble du jeu complet des propriétés de chaque entité. Pour obtenir une représentation complète de l’entité, les clients doivent récupérer le contenu de l’URL vers laquelle pointe le lien avec l’élément rel
self
.
Crée un dossier sling
: OrderedFolder
à l’emplacement indiqué. Si un astérisque (*
) est indiqué au lieu d’un nom de nœud, le servlet utilisera le nom du paramètre comme nom de nœud. Cela est accepté dans la mesure où les données de la requête consistent en une représentation Siren du nouveau dossier ou un ensemble de paires nom-valeur, codé sous la forme application/www-form-urlencoded
ou multipart
/ form
- data
, ce qui se révèle utile pour créer directement un dossier à partir d’un formulaire HTML. Les propriétés du dossier peuvent, en outre, être spécifiées en tant que paramètres de requête URL.
Un appel d’API échoue avec un code de réponse 500
si le nœud parent du chemin d’accès fourni n’existe pas. Un appel renvoie un code de réponse 409
si le dossier existe déjà.
Paramètres : name
est le nom du dossier.
Requête
POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'
POST /api/assets/* -F"name=myfolder" -F"title=My Folder"
Codes de réponse : les codes de réponse sont les suivants :
Voir transfert de ressources pour plus d’informations sur la création d’une ressource. Vous ne pouvez pas créer de fichier à l’aide de l’API HTTP.
Voir transfert de ressources pour plus d’informations sur la mise à jour des fichiers binaires. Vous ne pouvez pas mettre à jour un fichier binaire à l’aide de l’API HTTP.
Met à jour les propriétés de métadonnées d’une ressource. Si vous mettez à jour une propriété du namespace dc:
, l’API met à jour cette même propriété dans le namespace jcr
. L’API ne synchronise pas les propriétés des deux namespaces.
Requête : PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"dc:title":"My Asset"}}'
Codes de réponse : les codes de réponse sont les suivants :
Créer un rendu pour une ressource. Si le nom de paramètre de requête n’est pas fourni, le nom de fichier est utilisé comme nom du rendu.
Paramètres : les paramètres sont name
pour le nom du rendu et file
pour la référence au fichier.
Requête
POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"
POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"
Codes de réponse
Met à jour et remplace le rendu d’une ressource par les nouvelles données binaires.
Requête : PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
Codes de réponse : les codes de réponse sont les suivants :
Crée un commentaire de ressource.
Paramètres : les paramètres sont message
pour le corps de message du commentaire et annotationData
pour les données d’annotation au format JSON.
Requête : POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
Codes de réponse : les codes de réponse sont les suivants :
Copie un fichier ou une ressource disponible à l’emplacement indiqué vers une nouvelle destination.
En-têtes de la requête : les paramètres sont les suivants :
X-Destination
– un nouvel URI de destination appartenant à la portée de la solution d’API pour copier la ressource.X-Depth
– infinity
ou 0
. L’utilisation du code 0
entraîne la copie exclusive de la ressource et de ses propriétés, mais pas de ses enfants.X-Overwrite
– utilisez le code F
pour éviter le remplacement d’une ressource à la destination existante.Requête : COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
Codes de réponse : les codes de réponse sont les suivants :
Déplace un dossier ou une ressource de l’emplacement indiqué vers une nouvelle destination.
En-têtes de la requête : les paramètres sont les suivants :
X-Destination
– un nouvel URI de destination appartenant à la portée de la solution d’API pour copier la ressource.X-Depth
– infinity
ou 0
. L’utilisation du code 0
entraîne la copie exclusive de la ressource et de ses propriétés, mais pas de ses enfants.X-Overwrite
– Utiliser soit T
pour forcer la suppression d’une ressource existante, soit F
pour éviter le remplacement d’une ressource existante.Requête : MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
Codes de réponse : les codes de réponse sont les suivants :
Supprime une ressource (arborescence) pour le chemin indiqué.
Requête
DELETE /api/assets/myFolder
DELETE /api/assets/myFolder/myAsset.png
DELETE /api/assets/myFolder/myAsset.png/renditions/original
Codes de réponse : les codes de réponse sont les suivants :