A continuación se describen operaciones básicas mediante la API del gestor documental que pueden ser útiles para realizar integraciones con el mismo:
http://localhost/nuxeo/api/v1/config/types |
El servicio nos devolverá una respuesta como la que sigue:
{ "doctypes" : { "PaymentOrder" : { "parent" : "File", "facets" : [ "Downloadable", "Commentable", "Versionable", "Publishable", "HasRelatedText" ], "schemas" : [ "administrative", "userFile", "projectFile", "common", "dublincore", "file", "uid", "files", "relatedtext" }, }, } |
http://localhost/nuxeo/restAPI/default/{docId}/export?format=XML |
El servicio nos dará una respuesta como la que sigue:
<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.
http://localhost/nuxeo/api/v1/config/types/{docType} |
El servicio nos devolverá una respuesta como la que sigue:
{ "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".
Existen dos mecanismos básicos:
http://localhost/nuxeo/api/v1/id/{docId} |
http://localhost/nuxeo/api/v1/id/{docPath} |
http://localhost/nuxeo/restAPI/preview/default/{docId}/files:files-0-file/ |
http://localhost/nuxeo/restAPI/default/{docId}/deleteDocument |
Tras la llamada, el sistema deberá dar una respuesta como la siguiente:
<document> <repository>default<repository/> <docRef>Document 4457807c-8d15-4c76-44af-e5676e444ce5ed deleted <docRef> </document> |
El siguiente servicio web crea un nuevo documento con su título.
http://localhost/nuxeo/restAPI/default/{parentDocId}/createDocument?docType={docType}&dublincore:title={title} |
Tras la llamada, el sistema deberá dar una respuesta como la siguiente:
<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
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 } } |