Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
titleConsideraciones previas

$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:

Image Added

 

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:

Image Added

 

Ejemplo de petición autenticada con la cabecera:

Image Added

 

 

Consultar los tipos documentales disponibles en el sistema

...

Code Block
titleTipos documentales disponibles
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
titleTipo documental de un documento
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
titleMetadatos de un tipo documental
http://localhost$ATHENTO_HOST/nuxeo/api/v1/config/types/{docType}

...

Existen dos mecanismos básicos:

 

A) Por su Id

Code Block
titlePor su ID
http://localhost$ATHENTO_HOST/nuxeo/api/v1/id/{docId}

...

B) Por su path

Code Block
titlePor su Path
http://localhost$ATHENTO_HOST/nuxeo/api/v1/idpath/{docPath}
Info
titleImportante

Debes utilizar el path a partir de /default/

Obtener el preview de un documento

...

Code Block
titlePreview del documento
http://localhost$ATHENTO_HOST/nuxeo/restAPI/preview/default/{docId}/files:files-0-file/

...

Code Block
titleEliminar documento
http://localhost$ATHENTO_HOST/nuxeo/restAPI/default/{docId}/deleteDocument

...

Code Block
titleCreación de documento
http://localhost$ATHENTO_HOST/nuxeo/restAPI/default/{parentDocId}/createDocument?docType={docType}&dublincore:title={title}

...

Code Block
titleRespuesta de creación
<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
titleActualizar documento
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
titleQueries
http://$ATHENTO_HOST/nuxeo/api/v1/query/?query={queryNXQL}

A continuación un ejemplo:

Code Block
titleHaciendo queries mediante la API
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
titleRespuesta a una llamada con una query
{
    "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
titleManual de la API de Athento

Para mayor información, te recomendamos descargar el manual de la API de Athento, disponible desde:

http://go.athento.com/athento-ecm-api-guide