Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

A continuación se describen operaciones básicas mediante la API del gestor documental que pueden ser útiles para realizar integraciones con el mismo:

 

Consideraciones previas

$ATHENTO_HOST es el valor del dominio donde se encuentra desplegada la instancia de Athento ECM.

Consultar los tipos documentales disponibles en el sistema

 

Tipos documentales disponibles
http://$ATHENTO_HOST/nuxeo/api/v1/config/types

 

El servicio nos devolverá una respuesta como la que sigue:

 

Tipos documentales disponibles
{
  "doctypes" : {
    "PaymentOrder" : {
      "parent" : "File",
      "facets" : [ "Downloadable", "Commentable", "Versionable", "Publishable", "HasRelatedText" ],
      "schemas" : [ "administrative", "userFile", "projectFile", "common", "dublincore", "file", "uid", "files", "relatedtext" 
    },
  },
}

Obtener el tipo documental de un documento

 

Tipo documental de un documento
http://$ATHENTO_HOST/nuxeo/restAPI/default/{docId}/export?format=XML

 

El servicio nos dará una respuesta como la que sigue:

 

Tipo documental de un documento
<document repository="default" id="d6d2a055-6f42-4e6f-ba32-79ab0e24ae86">
	<system>
		<type>Workspace</type>
		<path>AcePros/workspaces/Sample</path>
		<lifecycle-state>project</lifecycle-state>
		<lifecycle-policy>default</lifecycle-policy>
		<facet>SuperSpace</facet>
		<facet>DocumentsSizeStatistics</facet>
		<facet>Folderish</facet>
		<facet>DocumentsCountStatistics</facet>
		<access-control>
			<acl name="inherited">
				<entry principal="tenant-AcePros_tenantAdministrators" permission="Everything" grant="true"/>
				<entry principal="tenant-AcePros_tenantMembers" permission="Read" grant="true"/>
				<entry principal="Everyone" permission="Everything" grant="false"/>
			</acl>
		</access-control>
	</system>...

Dentro de las etiquetas <type></type> se encuentra el tipo documental del documento consultado.

Obtener los metadatos para un tipo documental concreto

 

Metadatos de un tipo documental
http://$ATHENTO_HOST/nuxeo/api/v1/config/types/{docType}

El servicio nos devolverá una respuesta como la que sigue:

Metadatos de un tipo documental
{
  "parent" : "File",
  "facets" : [ "Downloadable", "Commentable", "Versionable", "Publishable", "HasRelatedText" ],
  "schemas" : [ {
    "name" : "administrative",
    "@prefix" : "administrative",
    "fields" : {
      "signDate" : "date",
      "concept" : "string",
      "companyNumber" : "string",
      "destinationAccount" : "string",
      "travelPurpose" : "string",
      "transferRequestDate" : "date",
      "company" : "string",
      "sourceAccount" : "string",
      "paymentOrderDate" : "date",
      "travelStartDate" : "date",
      "transferDoneDate" : "date",
      "travelRequestDate" : "date",
      "number" : "string",
      "travelEndDate" : "date",
      "category" : "string",
      "location" : "string",
      "travelName" : "string",
      "expenseDate" : "date",
      "amount" : "string"
    }
  },...

Los metadatos pueden hacer parte de diferentes esquemas (schemas), por ejemplo, en el código anterior, pueden verse los metadatos del tipo "PaymentOrder" dentr del esquema "fields".

Obtener un documento

Existen dos mecanismos básicos:

A) Por su Id

Por su ID
http://$ATHENTO_HOST/nuxeo/api/v1/id/{docId}

B) Por su path

Por su Path
http://$ATHENTO_HOST/nuxeo/api/v1/id/{docPath}

Obtener el preview de un documento

 

Preview del documento
http://$ATHENTO_HOST/nuxeo/restAPI/preview/default/{docId}/files:files-0-file/

 

Eliminar un documento

 

Eliminar documento
http://$ATHENTO_HOST/nuxeo/restAPI/default/{docId}/deleteDocument

Tras la llamada, el sistema deberá dar una respuesta como la siguiente:

Respuesta borrado
<document>
	<repository>default<repository/>
	<docRef>Document 4457807c-8d15-4c76-44af-e5676e444ce5ed deleted <docRef>
</document>

Crear un documento

El siguiente servicio web crea un nuevo documento con su título.

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

Tras la llamada, el sistema deberá dar una respuesta como la siguiente:

Respuesta 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

 

Actualizar 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

 

Queries
http://$ATHENTO_HOST/nuxeo/api/v1/query/?query={queryNXQL}

A continuación un ejemplo:

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

Respuesta 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

Manual de la API de Athento

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

 

 

 

  • No labels