/
API v1 RESTful

API v1 RESTful

Visión general

La API v1 RESTful es la vía de comunicación de Athento para conectar con toda la funcionalidad del sistema. Provee un modelo unificado de llamadas para cualquier tipo de operación sobre el modelo documental ofreciendo flexibilidad y seguridad.

Cómo usar la API v1

La API v1 de Athento es una RESTful Web API que permite acceder a todas las funcionalidades del modelo documental de Athento.

Uso rápido

A continuación se listan los endpoints actuales de la API v1.

Modo

Endpoint

Descripción

Modo

Endpoint

Descripción

Documento

POST

/api/v1/file/

Crea un nuevo documento.

GET

/api/v1/file/{uuid}/

Obtiene un documento en formato JSON indicando su uuid.

PUT

/api/v1/file/{uuid}/

Modifica un documento indicando su uuid.

DELETE

/api/v1/file/{uuid}/

Elimina un documento indicando su uuid.

GET

/api/v1/file/{uuid}/download/

Descarga el contenido de un documento.

POST

/api/v1/file/download/

Descarga el contenido de un listado de documentos.

POST

/api/v1/file/{uuid}/lifecycle/transition

Ejecuta una transición sobre el ciclo de vida de un documento.

Comentario

GET

/api/v1/file/{file_uuid}/comment/

Obtiene los comentarios de un documento indicando el file_uuid del documento.

POST

/api/v1/file/{file_uuid}/comment/

Crea un nuevo comentario sobre un documento.

GET

/api/v1/file/{file_uuid}/comment/{uuid}/

Obtiene un comentario de un documento indicando el uuid de ambos.

PUT

/api/v1/file/{file_uuid}/comment/{uuid}/

Modifica un comentario indicando su uuid y el file_uuid del documento.

DELETE

/api/v1/file/{file_uuid}/comment/{uuid}/

Borra un comentario indicando su uuid y el file_uuid del documento.

Búsqueda

POST

/api/v1/search/query

Busca documentos ejecutando una query ATQL y obteniendo los documentos como entidad.

POST

/api/v1/search/resultset

Busca documentos ejecutando una query ATQL y obteniendo las columnas incluidas en la cláusula SELECT.

Usuario

POST

/api/v1/user/

Crea un nuevo usuario.

GET

/api/v1/user/{username}/

Obtiene un usuario en formato JSON indicando su username.

PUT

/api/v1/user/{username}/

Modifica un usuario existente.

POST

/api/v1/user/{username}/activate

Activa un usuario.

POST

/api/v1/user/{username}/deactivate

Desactiva un usuario.

Grupo

POST

/api/v1/group/

Crea un nuevo grupo.

GET

/api/v1/group/{name}/

Obtiene un grupo en formato JSON indicando su name.

Acceda a Athento Explorer

Use Athento Explorer para poder gestionar las llamadas a los endpoints de la API v1 en la ruta /api/v1/explorer de su instancia. Por ejemplo en https://demo.athento.com/api/v1/explorer.

Para usar Athento Explorer debe iniciar sesión.

 

Athento Explorer

Especificaciones generales

Formatos

Cabeceras

Nombre

Valores

Opcional

Nombre

Valores

Opcional

Content-Type

application/json

multipart/form-data

False

Fetch-Mode

default

extended

full

True

Descripción

  • Content-Type: es el tipo de contenido que se usará en las llamadas a la API v1.

  • Fetch-Mode: es el tipo modo de obtención de la entidad que se pretende consultar donde:

    • default: es la obtención por defecto, con la información mínima suficiente.

    • extended: obtención extendida de la entidad y sus relaciones, donde se informa de atributos más destacados de la misma.

      • Incluye las entidades de los documentos relacionados al propio documento.

    • full: obtención completa de la entidad y sus relaciones.

Petición

{   "<KEY>": "<VALUE>",   "<OBJECT>": { "<KEY>": "<VALUE>", ...   } }

Respuesta

El formato de respuesta de la API v1 tendrá siempre un formato estándar representado con tipo de contenido JSON y con la siguiente estructura:

{   "request-id": "<UUID>",   "response": {       "message": "<EXECUTION MESSAGE>",       "code": <EXECUTION CODE>   },   "result": { "entity": "<ENTITY>",       <REST OF JSON RESPONSE> } }

 

Documento — Document Entity

El documento es la pieza fundamental de almacenamiento en Athento. La API v1 ofrece la posibilidad de operar con ellos para crear, modificar, eliminar y consultarlos.

A continuación se muestra la representación de un documento por defecto.

{    "entity": "Document",    "uuid": "a8b16f41-65a0-481c-bb1a-e094011fee14",    "filename": "PDF-Athento.pdf",    "creation_date": "2022-12-07T16:45:03.302424+01:00",    "modified_date": "2022-12-07T16:45:06.048175+01:00",    "state": "pending",    "version": "0.0",    "author": "benchmark",    "serie": "my_space",    "doctype": "my_form",    "container": false,    "file": {        "url": "uploads/.../2d/9c/2d9c09cdb21fd0a56eefd627240d554f.pdf",        "extension": ".pdf",        "hash": "2d9c09cdb21fd0a56eefd627240d554f",        "size": 34073,        "content_type": "application/pdf"    },    "life_cycle_state": "started" }

 

Cuando un documento tiene contenido binario, el atributo file aparece en la representación de la entidad. Otros elementos como el life_cycle_state, etc. se comportan del mismo modo.

Crear un documento

Llamada genérica de creación:

 

Crear documento

Un documento en Athento es una entidad de un cierto tipo documental, o también llamado formulario, que se aloja en un Espacio —también llamado Serie documental— concreto. Dicho documento, puede tener o no un contenido principal —archivo binario— asociado. En este caso, comenzamos con la creación de un documento de Athento, donde no se especifica un binario asociado.

Content-Type: application/json

Petición:

 Respuesta:

 

Metadatos

El documento se puede componer con un conjunto de metadatos —o campos— de diferentes tipos. Dichos metadatos serán definidos por el formulario —o tipo documental— que describe al documento, aunque podrán añadirse otros que estén fuera de dicho formulario documental de manera que puedan quedar permanentes y trazados si el propio documento cambia de tipo.

A continuación se enumeran los diferentes tipos de metadatos que pueden ser incluidos en el documento.

Tipo

Descripción

Ejemplos

Tipo

Descripción

Ejemplos

Text

Cadena de texto

'Mi valor de metadato'

Number

Número (Moneda, Porcentaje, …)

50 4.34 0.21…

Boolean

Booleano

true false

Date

Fecha

'01-01-2025' '01/01/2025' '2025-01-01'

Datetime

Fecha y hora

'01-01-2025 00:01:30' '2025-01-01 00:01:30' ……

Table of items

Lista de items

'[{"key1": "value1", "key2", "value2", ...]'

Document

Referencia a documento (UUID)

'dac466fd-a238-4dcc-8ba5-c30a4c2c57af'

Document list

Referencias a documento (Lista de UUIDs)

('dac466fd-a238-4dcc-8ba5-c30a4c2c57af', '5ac433f1-b2b1-4dc0-9bf5-ddd14c5c574f', 'dacdddfd-b218-4dee-8b15-c30a4c24dc0f', ...)

Choice

Valor seleccionable

'1' 'John Smith' 'Aprobado'

Multichoice

Valores seleccionables múltiples

('1' ,'5', '4', ...)

Los tipos de metadatos que puedan definirse en tiempo de configuración podrán ser añadidos como tipo texto, es decir, con un valor reflejado como cadena de caracteres. Por ejemplo, si tenemos un campo de tipo Choice, el valor incluido podrá ser incluido como texto.

 

Crear documento con contenido

A continuación el servicio de creación de nuevo documento con un binario asociado.

Content-Type: multipart/form-data

Petición:

Respuesta:

 

Crear documento a partir de plantilla

Creación de un documento a partir de una plantilla. En primer (por defecto) o segundo plano.

Content-Type: multipart/form-data

Nombre

Valores

Opcional

Nombre

Valores

Opcional

template

Nombre o UUID de la plantilla

True

background

Realizar la generación del binario en segundo plano
true|false