A continuación se describen operaciones básicas mediante la API del gestor documental que pueden ser útiles para realizar integraciones con el mismo:
Info | ||
---|---|---|
| ||
$ATHENTO_HOST es el valor del dominio donde se encuentra desplegada la instancia de Athento ECM. |
Autenticación y cabeceras
Para autenticar los servicios descritos a continuación es necesario establecer el usuario y contraseña que serán incluidas mediante BasicAuthentication en las cabeceras de la petición.
Ejemplo en el cliente POSTMAN para Chrome:
Además, para poder realizar correctamente todas las peticiones a servicios, es necesario introducir la siguiente cabecera:
Content-Type: application/json+nxrequest
Ejemplo en el cliente POSTMAN para Chrome:
Ejemplo de petición autenticada con la cabecera:
Consultar los tipos documentales disponibles en el sistema
...
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/api/v1/config/types |
...
Obtener el tipo documental de un documento
Este servicio nos devuelve toda la información de estructura con contenido de un documento existente en el sistema dado su identificador.
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/restAPI/default/{docId}/export?format=XML |
...
Obtener los metadatos para un tipo documental concreto
Este servicio nos devuelve la estructura de metadatos y facetas de un tipo documental concreto.
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/api/v1/config/types/{docType} |
...
Existen dos mecanismos básicos:
A) Por su Id
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/api/v1/id/{docId} |
...
B) Por su path
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/api/v1/idpath/{docPath} |
Info | ||
---|---|---|
| ||
Debes utilizar el path a partir de /default/ |
Obtener el preview de un documento
...
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/restAPI/preview/default/{docId}/files:files-0-file/ |
...
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/restAPI/default/{docId}/deleteDocument |
...
Code Block | ||
---|---|---|
| ||
http://localhost$ATHENTO_HOST/nuxeo/restAPI/default/{parentDocId}/createDocument?docType={docType}&dublincore:title={title} |
...
Code Block | ||
---|---|---|
| ||
<document> <repository>default<repository/> <docRef>4457807c-8d15-4c76-44af-e5676e444ce5ed<docRef> <docTitle>Test</docTitle> <docPath>/default-domain/Userworkspaces/user1/Test</docPath> </document> |
Actualizar un documento
Code Block | ||
---|---|---|
| ||
PUT /nuxeo/site/api/v1/id/{docId}
{
"entity-type": "document",
"repository": "default",
"uid": "37b1502b-26ff-430f-9f20-4bd0d803191e",
"properties": {
"dc:title": "The new title",
"dc:description": "Document updated via REST API"
"common:icon": "/icons/file.gif",
"common:icon-expanded": null,
"common:size": null
}
}
|
Hacer consultas
Code Block | ||
---|---|---|
| ||
http://$ATHENTO_HOST/nuxeo/api/v1/query/?query={queryNXQL} |
A continuación un ejemplo:
Code Block | ||
---|---|---|
| ||
http://$ATHENTO_HOST/nuxeo/api/v1/query/?query=SELECT * FROM Document WHERE dc:title='ATHENTO' |
Con el cliente como POSTMAN, una llamada como la anterior nos daría una respuesta similar a la quue sigue:
Code Block | ||
---|---|---|
| ||
{
"entity-type": "documents",
"isPaginable": true,
"resultsCount": 2,
"pageSize": 0,
"maxPageSize": 0,
"currentPageSize": 2,
"currentPageIndex": 0,
"numberOfPages": 1,
"isPreviousPageAvailable": false,
"isNextPageAvailable": false,
"isLastPageAvailable": false,
"isSortable": true,
"hasError": false,
"errorMessage": null,
"totalSize": 2,
"pageIndex": 0,
"pageCount": 1,
"entries": [
{
"entity-type": "document",
"repository": "default",
"uid": "9fb66cdb-2e17-4b1a-bc07-6fa04235047d",
"path": "/Athento/workspaces/Administración/8. Documentación Yerbabu/MARCA/ATHENTO",
"type": "Folder",
"state": "project",
"parentRef": "c141f110-32da-452c-96c3-aae8aeb9a7f7",
"versionLabel": "",
"isCheckedOut": true,
"title": "ATHENTO",
"lastModified": "2015-09-16T15:52:42.86Z",
"facets": [
"DocumentsSizeStatistics",
"Folderish",
"DocumentsCountStatistics"
],
"changeToken": "1442418762861",
"contextParameters": {
"documentURL": "/nuxeo/nxdoc/default/9fb66cdb-2e17-4b1a-bc07-6fa04235047d/view_documents"
}
},
{
"entity-type": "document",
"repository": "default",
"uid": "92379199-befe-4430-a7ba-401282656987",
"path": "/InvoiceDemo/workspaces/PROYECTOS/ATHENTO/ATHENTO",
"type": "Workspace",
"state": "project",
"parentRef": "0f6c49df-186d-4ae3-8486-3a72da40dd44",
"versionLabel": "",
"isCheckedOut": true,
"title": "ATHENTO",
"lastModified": "2016-03-02T15:42:25.75Z",
"facets": [
"SuperSpace",
"DocumentsSizeStatistics",
"Folderish",
"DocumentsCountStatistics"
],
"changeToken": "1456933345758",
"contextParameters": {
"documentURL": "/nuxeo/nxdoc/default/92379199-befe-4430-a7ba-401282656987/view_documents"
}
}
]
} |
Vemos que el sistema ha encontrado dos documentos cuyo título es "ATHENTO" y nos ha devuelto sus propiedades.
Más Operaciones
Tip | ||
---|---|---|
| ||
Para mayor información, te recomendamos descargar el manual de la API de Athento, disponible desde: |