Endpoints para Item
Esta API maneja endpoints para gestionar ítems, que representan ficheros almacenados en el sistema. Un ítem incluye información sobre el archivo, como su nombre, tipo y ubicación, permitiendo operaciones como la carga y eliminación de estos ficheros.
Tipos de Items presentes
-
Imagenes (Productos, Logos, Banners, Imágenes de perfil...): Las imagenes se almacenaran como items, con el type image, o los distintos tipos para las diferentes ventanas (
image/jpg,image/jpeg,image/png,image/gif). -
Documentos: Podemos importar todo tipo de documentos como (
application/pdf,application/msword,text/csv,application/vnd.ms-excel,application/vnd.ms-powerpoint) -
Archivos Comprimidos: La API da soporte a archivos comprimidos (
application/zip,application/vnd.rar).
Actualmente la API solo brinda endpoints para carga de imágenes.
Endpoints
GET/Item/getImageByUrl
Obtener todas las imágenes en el sistema.
Descripción
Este endpoint recupera una lista paginada con todas las imágenes existentes en el sistema. Permite a los clientes obtener los datos de las imágenes basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). El campo url permite visualizar la imagen almacenada en el servidor.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"type": {
"id": "string",
"description": "string"
},
"name": "string",
"description": "string",
"extension": "string",
"mimeType": "string",
"url": "string",
"highlight": true,
"order": 0,
"origin": "string",
"numDownload": 0,
"visible": true,
"active": true,
"resource": [
{
"language": {
"id": "string",
"iso": "string",
"name": "string"
},
"rol": {
"id": "string",
"type": "string"
}
},
],
"updatedAt": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<type>
<id>string</id>
<description>string</description>
</type>
<name>string</name>
<description>string</description>
<extension>string</extension>
<mimeType>string</mimeType>
<url>string</url>
<highlight>true</highlight>
<order>0</order>
<origin>string</origin>
<numDownload>0</numDownload>
<visible>true</visible>
<active>true</active>
<resource>
<language>
<id>string</id>
<iso>string</iso>
<name>string</name>
</language>
<rol>
<id>string</id>
<type>string</type>
</rol>
</resource>
<updatedAt>string</updatedAt>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET /Item/getItemByUrl
Obtener Documentos por URL.
Descripción
Este endpoint recupera una lista paginada con todos los documentos que no sean imágenes almacenados en sistema. Permite a los clientes obtener los datos de los ítems basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize).
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"type": {
"id": "string",
"description": "string"
},
"name": "string",
"description": "string",
"extension": "string",
"mimeType": "string",
"url": "string",
"highlight": true,
"order": 0,
"origin": "string",
"numDownload": 0,
"visible": true,
"active": true,
"resource": [
{
"language": {
"id": "string",
"iso": "string",
"name": "string"
},
"rol": {
"id": "string",
"type": "string"
}
},
],
"updatedAt": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<type>
<id>string</id>
<description>string</description>
</type>
<name>string</name>
<description>string</description>
<extension>string</extension>
<mimeType>string</mimeType>
<url>string</url>
<highlight>true</highlight>
<order>0</order>
<origin>string</origin>
<numDownload>0</numDownload>
<visible>true</visible>
<active>true</active>
<resource>
<language>
<id>string</id>
<iso>string</iso>
<name>string</name>
</language>
<rol>
<id>string</id>
<type>string</type>
</rol>
</resource>
<updatedAt>string</updatedAt>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
POST/Item/createDocument
Impotar documentos en base 64: Uso del Método POST
Este endpoint está diseñado para subir al servidor cualquier tipo de fichero en base64.
Detalles del Método POST:
El campo idRemote proporcionado en la creación de una nueva entidad se corresponden con el idRemote remoto que quiera darle el usuario. El sistema creará automáticamente un id local.
Todos los parámetros del cuerpo son obligatorios.
Para realizar una petición exitosa a través de este endpoint debe adjuntar el cuerpo siguiendo este esquema JSON:
[
{
"idRemote": "string",
"name": "string",
"visible": true,
"base64": "string"
}
]
Puede cargar varios documentos en una única operación separando por comas cada objeto dentro del array.
POST/Item/createImage
Impotar imágenes en base 64: Uso del Método POST
A través de este endpoint puedes generar imágenes en formato base64 o a través de una URL. Todo depende del parámetro base64Image. Si quieres crear una imagen a partir de una URL, debes cambiar este parámetro por url.
Detalles del Método POST:
Al crear una imagen podemos adjuntar los productos a los que se quiere asociar dicha imagen. Podemos añadir un campo opcional llamado products que contiene un parámetro productId, este parámetro puede adjuntarse varias veces separado por comas para asociar una imagen a varios productos. Si productId corresponde a un producto genérico, la imagen se asociará a todas sus variantes.
El campo idRemote proporcionado en la creación de una nueva entidad se corresponden con el idRemote remoto que quiera darle el usuario. El sistema creará automáticamente un id local.
Parámetros obligatorios:
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador de la nueva Imagen | String |
name | Nombre que se asignará a la nueva Imagen | String |
visible | Determina si la nueva Imagen es visible o no | Boolean |
active | Determina si la nueva Imagen está activa o no | Boolean |
base64Image | La imagen codificada en base 64 | String |
Para efectuar una petición exitosa a través de este endpoint debe adjuntar el cuerpo siguiendo este esquema JSON:
[
{
"idRemote": "string",
"name": "string",
"visible": true,
"active": true,
"base64Image": "string",
"products": [
{
"productId": "string"
}
]
}
]
Puede cargar varias im ágenes en una única operación separando por comas cada objeto dentro del array.
Respuestas
Con el fin de no saturar al servidor, este endpoint envía un mensaje a un consumidor encargado de procesar la petición. Para comprobar el estado de la solicitud enviada es necesario acceder a la url adjunta en la respuesta. Una respuesta correctamente enviada al consumidor debe parecerse a esta:
{
"code": 201,
"message": "Items message created successfully and dispatched to the queue.",
"statusUrl": "http://host/api/database/v1/message/status/messageId"
}
El campo statusUrl nos redirige a una respuesta más detallada sobre el estado de la petición. Una solicitud correctamente procesada por el consumidor tiene el siguiente aspecto:
{
"data": [
{
"status": "completed",
"errorMessage": null
}
],
"pagination": {
"totalItems": 1,
"itemsPerPage": 10,
"currentPage": 1,
"totalPages": 1,
"nextPageUrl": null
}
}
En caso de producirse cualquier error durante el procesado del mensaje, la respuesta tendrá un aspecto similar a este:
{
"code": 400,
"error": "Invalid item data format, a required parameter is missing"
}
POST/Item/createImageByUrl
Impotar imágenes por URL: Uso del Método POST
Si desea cargar en el sistema una imagen a través de una url, puede utilizar este endpoint. El sistema recoge la url adjunta en el parámetro url y la almacena en el servidor.
Detalles del Método POST:
Al crear una imagen podemos adjuntar los productos a los que se quiere asociar dicha imagen. Podemos añadir un campo opcional llamado products que contiene un parámetro productId, este parámetro puede adjuntarse varias veces separado por comas para asociar una imagen a varios productos. Si productId corresponde a un producto genérico, la imagen se asociará a todas sus variantes.
El campo idRemote proporcionado en la creación de una nueva entidad se corresponden con el idRemote remoto que quiera darle el usuario. El sistema creará automáticamente un id local.Para efectuar la creación de una imagen a través de este endpoint debe adjuntar el cuerpo de la petición siguiendo este esquema JSON:
Parámetros obligatorios:
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador de la nueva Imagen | String |
name | Nombre que se asignará a la nueva Imagen | String |
visible | Determina si la nueva Imagen es visible o no | Boolean |
active | Determina si la nueva Imagen está activa o no | Boolean |
url | La URL con la nueva Imagen | String |
Para efectuar una petición exitosa a través de este endpoint debe adjuntar el cuerpo siguiendo este esquema JSON:
[
{
"idRemote": "string",
"name": "string",
"visible": true,
"active": true,
"url": "string",
"products": [
{
"productId": "string"
}
]
}
]
Puede cargar varias imágenes en una única operación separando por comas cada objeto dentro del array.
Respuestas
Con el fin de no saturar al servidor, este endpoint envía un mensaje a un consumidor encargado de procesar la petición. Para comprobar el estado de la solicitud enviada es necesario acceder a la url adjunta en la respuesta. Una respuesta correctamente enviada al consumidor debe parecerse a esta:
{
"code": 201,
"message": "Items message created successfully and dispatched to the queue.",
"statusUrl": "http://host/api/database/v1/message/status/messageId"
}
El campo statusUrl nos redirige a una respuesta más detallada sobre el estado de la petición. Una solicitud correctamente procesada por el consumidor tiene el siguiente aspecto:
{
"data": [
{
"status": "completed",
"errorMessage": null
}
],
"pagination": {
"totalItems": 1,
"itemsPerPage": 10,
"currentPage": 1,
"totalPages": 1,
"nextPageUrl": null
}
}
En caso de producirse cualquier error durante el procesado del mensaje, la respuesta tendrá un aspecto similar a este:
{
"code": 400,
"error": "Invalid item data format, a required parameter is missing"
}
DELETE/Item/delete/{id}
Eliminación de Elementos.
Descripción
Este endpoint permite la eliminación de elementos utilizando su identificador único, que puede ser tanto el ID propio del sistema B2B como el ID proporcionado por usted al registrar los elementos en nuestra plataforma. Eliminar un item lo borra tanto de la base de datos como del servidor.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de Elemento | String |
Posibles Errores de Respuesta
| Error | Código | Respuesta |
|---|---|---|
| Este error ocurre cuando el nombre de la base de datos no está registrado. Es un problema interno del servidor. | 500 | {"code": 500,"error": "This dbs name is not register"} |
| Este error ocurre cuando no se puede establecer una conexión con la base de datos. Es un problema interno del servidor. | 500 | {"code": 500,"error": "Database connection failed."} |
| Este error ocurre cuando no puede insertar o actualizar y en la dbs de pruebas. | 500 | {"code": 500,"error": "Invalid connection name, you cannot insert in default"} |
| Este error indica que falta un parametro. | 400 | {"code": 400,"error": "Parameter $parameter is required"} |
| Este error indica que no está autorizado. | 401 | {"code": 401,"error": "Unauthorized."} |
| Este error indica que no ha sido posible encontrar el Tipo de imagen. | 404 | {"code": 404,"error": "No entity found for type with $id."} |
| Este error ocurre cuando intenta insertar una imagen que ya existe. | 409 | {"code": 409,"error": "Duplicate entry"} |
| Este error ocurre cuando intenta insertar una imagen de un tipo no permitido. | 415 | {"code": 415,"error": "Uploaded image MIME type not permitted"} |
| Este error ocurre cuando intenta enviar demasiadas solicitudes en un corto periodo de tiempo. | 429 | {"code": 429,"error": "Too Many Requests"} |