La API HTTP de recursos permite crear, leer, actualizar y eliminar operaciones (CRUD) en recursos digitales, incluidos metadatos, representaciones y comentarios, junto con contenido estructurado que utiliza fragmentos de contenido Experience Manager. Se expone en /api/assets
y se implementa como API de REST.
Para acceder a la API:
https://[hostname]:[port]/api.json
.https://[hostname]:[server]/api/assets.json
.La respuesta de API es un archivo JSON para algunos tipos MIME y un código de respuesta para todos los tipos MIME. La respuesta JSON es opcional y es posible que no esté disponible, por ejemplo para archivos PDF. Confíe en el código de respuesta para realizar más análisis o acciones.
Después del Tiempo de inactividad, un recurso y sus representaciones no están disponibles a través de la interfaz web Assets y a través de la API HTTP. La API devuelve un mensaje de error 404 si el Tiempo de activación está en el futuro o el Tiempo de inactividad está en el pasado.
La API HTTP actualiza las propiedades de metadatos en el jcr
espacio de nombres. Sin embargo, la interfaz de usuario del Experience Manager actualiza las propiedades de los metadatos en el espacio de nombres dc
.
La API HTTP de Assets expone dos elementos principales, carpetas y recursos (para recursos estándar).
Las carpetas son como directorios en sistemas de archivos tradicionales. Son contenedores para otras carpetas o aserciones. Las carpetas tienen los siguientes componentes:
Entidades: Las entidades de una carpeta son sus elementos secundarios, que pueden ser carpetas y recursos.
Propiedades:
name
es el nombre de la carpeta. Es el mismo que el último segmento de la ruta URL sin la extensión.title
es un título opcional de la carpeta que se puede mostrar en lugar de su nombre.Algunas propiedades de carpeta o recurso se asignan a un prefijo diferente. El prefijo jcr
de jcr:title
, jcr:description
y jcr:language
se reemplaza por el prefijo dc
. Por lo tanto, en el JSON devuelto, dc:title
y dc:description
contienen los valores jcr:title
y jcr:description
, respectivamente.
LinksFolders expone tres vínculos:
self
: Vínculo a sí mismo.parent
: Enlace a la carpeta principal.thumbnail
: (Opcional) vínculo a una imagen en miniatura de la carpeta.En Experience Manager, un recurso contiene los siguientes elementos:
En Experience Manager una carpeta tiene los siguientes componentes:
La API HTTP de Assets incluye las siguientes funciones:
Para facilitar la lectura, en los ejemplos siguientes se omite la notación cURL completa. De hecho, la notación sí se correlaciona con Resty, que es un envoltorio de script para cURL
.
Requisitos previos
https://[aem_server]:[port]/system/console/configMgr
.POST
, PUT
, DELETE
.Recupera una representación sirena de una carpeta existente y de sus entidades secundarias (subcarpetas o recursos).
Solicitud: GET /api/assets/myFolder.json
Códigos de respuesta: Los códigos de respuesta son:
Respuesta: La clase de la entidad devuelta es un recurso o una carpeta. Las propiedades de las entidades contenidas son un subconjunto del conjunto completo de propiedades de cada entidad. Para obtener una representación completa de la entidad, los clientes deben recuperar el contenido de la URL señalada por el vínculo con rel
de self
.
Crea un nuevo sling
: OrderedFolder
en la ruta dada. Si se proporciona un *
en lugar de un nombre de nodo, el servlet utiliza el nombre de parámetro como nombre de nodo. Los datos de solicitud se aceptan como una representación sirena de la nueva carpeta o un conjunto de pares de nombre-valor, codificados como application/www-form-urlencoded
o multipart
/ form
- data
, útiles para crear una carpeta directamente desde un formulario HTML. Además, las propiedades de la carpeta se pueden especificar como parámetros de consulta de URL.
Una llamada de API falla con un código de respuesta 500
si el nodo principal de la ruta proporcionada no existe. Una llamada devuelve un código de respuesta 409
si la carpeta ya existe.
Parámetros: name
es el nombre de la carpeta.
Solicitar
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"
Códigos de respuesta: Los códigos de respuesta son:
Coloque el archivo proporcionado en la ruta proporcionada para crear un recurso en el repositorio de DAM. Si se proporciona un *
en lugar de un nombre de nodo, el servlet utiliza el nombre de parámetro o el nombre de archivo como nombre de nodo.
Parámetros: Los parámetros son name
para el nombre del recurso y file
para la referencia del archivo.
Solicitar
POST /api/assets/myFolder/myAsset.png -H"Content-Type: image/png" --data-binary "@myPicture.png"
POST /api/assets/myFolder/* -F"name=myAsset.png" -F"file=@myPicture.png"
Códigos de respuesta: Los códigos de respuesta son:
Actualiza el binario de un recurso (representación con el nombre original). Una actualización déclencheur el flujo de trabajo predeterminado de procesamiento de recursos que se va a ejecutar, si está configurado.
Solicitud: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: image/png" --data-binary @myPicture.png
Códigos de respuesta: Los códigos de respuesta son:
Actualiza las propiedades de metadatos de Asset. Si actualiza cualquier propiedad en el espacio de nombres dc:
, la API actualiza la misma propiedad en el espacio de nombres jcr
. La API no sincroniza las propiedades de las dos áreas de nombres.
Solicitud: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"jcr:title":"My Asset"}}'
Códigos de respuesta: Los códigos de respuesta son:
dc
y jcr
área de nombresEl método API actualiza las propiedades de metadatos en el espacio de nombres jcr
. Las actualizaciones realizadas con la IU táctil cambian las propiedades de metadatos en el espacio de nombres dc
. Para sincronizar los valores de metadatos entre el espacio de nombres dc
y jcr
, puede crear un flujo de trabajo y configurar un Experience Manager para que ejecute el flujo de trabajo tras editar los recursos. Utilice una secuencia de comandos ECMA para sincronizar las propiedades de metadatos necesarias. El siguiente script de ejemplo sincroniza la cadena de título entre dc:title
y jcr:title
.
var workflowData = workItem.getWorkflowData();
if (workflowData.getPayloadType() == "JCR_PATH")
{
var path = workflowData.getPayload().toString();
var node = workflowSession.getSession().getItem(path);
var metadataNode = node.getNode("jcr:content/metadata");
var jcrcontentNode = node.getNode("jcr:content");
if (jcrcontentNode.hasProperty("jcr:title"))
{
var jcrTitle = jcrcontentNode.getProperty("jcr:title");
metadataNode.setProperty("dc:title", jcrTitle.toString());
metadataNode.save();
}
}
Cree una nueva representación de recursos para un recurso. Si no se proporciona el nombre del parámetro de solicitud, el nombre del archivo se utiliza como nombre de representación.
Parámetros: Los parámetros son name
para el nombre de la representación y file
como referencia de archivo.
Solicitar
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"
Códigos de respuesta: Los códigos de respuesta son:
Actualizaciones reemplaza respectivamente una representación de recursos con los nuevos datos binarios.
Solicitud: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
Códigos de respuesta: Los códigos de respuesta son:
Crea un nuevo comentario de recurso.
Parámetros: Los parámetros son message
para el cuerpo del mensaje del comentario y annotationData
para los datos de anotación en formato JSON.
Solicitud: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
Códigos de respuesta: Los códigos de respuesta son:
Copia una carpeta o un recurso disponible en la ruta de acceso proporcionada a un nuevo destino.
Solicitar encabezados: Los parámetros son:
X-Destination
: un nuevo URI de destino dentro del ámbito de la solución de API al que copiar el recurso.X-Depth
- infinity
o 0
. Al usar 0
solo se copia el recurso y sus propiedades, y no sus elementos secundarios.X-Overwrite
- Utilice F
para evitar sobrescribir un recurso en el destino existente.Solicitud: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
Códigos de respuesta: Los códigos de respuesta son:
Mueve una carpeta o un recurso en la ruta dada a un nuevo destino.
Solicitar encabezados: Los parámetros son:
X-Destination
: un nuevo URI de destino dentro del ámbito de la solución de API al que copiar el recurso.X-Depth
- infinity
o 0
. Al usar 0
solo se copia el recurso y sus propiedades, y no sus elementos secundarios.X-Overwrite
- Utilice T
para forzar la eliminación de recursos existentes o F
para evitar sobrescribir un recurso existente.Solicitud: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
Códigos de respuesta: Los códigos de respuesta son:
Elimina un recurso (-tree) en la ruta proporcionada.
Solicitar
DELETE /api/assets/myFolder
DELETE /api/assets/myFolder/myAsset.png
DELETE /api/assets/myFolder/myAsset.png/renditions/original
Códigos de respuesta: Los códigos de respuesta son: