Descripción general
La API de TagType es una API para gestionar las etiquetas de usuario de Fess, es decir, las etiquetas propias de cada usuario que los usuarios que han iniciado sesión asignan a documentos (consulte Etiqueta de usuario). Gestiona las etiquetas de todos los usuarios, tanto si user.tag.enabled es true como si no.
Para conocer el método de autenticación y las especificaciones comunes de la Respuesta (código status, campo version, formato de errores, códigos de estado HTTP, etc.), consulte Visión General de Admin API. Para acceder a esta API, es necesario especificar un token de acceso con el permiso de Admin API (admin-api) en el encabezado Authorization: Bearer <token de acceso>.
Los nombres de los campos JSON de esta API están en snake_case (sort_order, virtual_host, seq_no, primary_term, etc.).
URL base
Lista de endpoints
| Método | Ruta | Descripción |
|---|---|---|
| GET | /settings | Obtener la lista de etiquetas de usuario |
| GET | /setting/{id} | Obtener una etiqueta de usuario |
| POST | /setting | Crear una etiqueta de usuario |
| PUT | /setting | Actualizar una etiqueta de usuario |
| DELETE | /setting/{id} | Eliminar una etiqueta de usuario |
Obtener la lista de etiquetas de usuario
Solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
size | Integer | No | Número de elementos por página. El valor predeterminado es el de paging.page.size (25 de forma predeterminada). |
page | Integer | No | Número de página (empieza en 1). El valor predeterminado es 1. |
name | String | No | Filtrar por nombre (búsqueda con comodines: coincide con los nombres que contienen el texto). |
owner | String | No | Filtrar por propietario (búsqueda con comodines: coincide con los propietarios que contienen el texto). |
Las etiquetas se ordenan por orden de clasificación, nombre y propietario.
Respuesta
Nota
La lista no lee las rutas de las etiquetas, que pueden ser largas, por lo que sus elementos no tienen paths. PUT sustituye la etiqueta por completo: para editarla, obténgala antes con GET /setting/{id} para conservar sus paths.
Obtener una etiqueta de usuario
Solicitud
Respuesta
seq_no y primary_term identifican la versión leída de la etiqueta. paths y permissions contienen un valor por línea.
Crear una etiqueta de usuario
Solicitud
Cuerpo de la solicitud
Descripción de campos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | String | Sí | Nombre de la etiqueta. Se normaliza con NFKC, los espacios consecutivos se reducen a uno y se recortan los extremos; el resultado debe tener entre 1 y |
owner | String | Sí | ID de usuario de inicio de sesión del propietario (máximo 1000 caracteres). |
paths | String | No | URL de los documentos a los que se asigna la etiqueta, separadas por un salto de línea ( |
permissions | String | No | Usuarios/grupos/roles que pueden ver la etiqueta (p. ej. |
virtual_host | String | No | Host virtual (máximo 1000 caracteres). |
sort_order | Integer | No | Orden de visualización (entero no negativo). Si se omite, 0. |
El ID de una etiqueta es el SHA-256 de su valor, formado a partir del nombre y el propietario, por lo que lo decide el servidor. El propietario y el nombre identifican juntos una etiqueta: si el propietario ya tiene una etiqueta con ese nombre, la creación falla con un error de validación (status: 1, «A tag with the same name and owner already exists.»).
Respuesta
Si la creación tiene éxito, created es true.
Actualizar una etiqueta de usuario
Solicitud
Cuerpo de la solicitud
El cuerpo contiene todos los campos de la creación y, además, los siguientes. La etiqueta se sustituye por completo, así que envíe también las paths que quiera conservar.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | String | Sí | El ID de la etiqueta que se actualiza. |
seq_no | Integer | Sí | El seq_no de la etiqueta devuelto por GET /setting/{id}. |
primary_term | Integer | Sí | El primary_term de la etiqueta devuelto por GET /setting/{id}. |
Si la etiqueta cambió después de leerla, es decir,
seq_noyprimary_termya no coinciden, la actualización falla con un error de validación (status: 1, «The tag was changed by someone else. Reload it and try again.»). Vuelva a obtener la etiqueta y repita la operación.Cambiar
nameuownerda a la etiqueta un ID nuevo; elidde la respuesta es el nuevo. Si el propietario ya tiene una etiqueta con el nuevo nombre, la actualización falla con «A tag with the same name and owner already exists.».Al cambiar el propietario, el permiso de usuario del propietario anterior en
permissionsse sustituye por el del nuevo propietario.
Respuesta
En una actualización, created es false.
Eliminar una etiqueta de usuario
Solicitud
Respuesta
Si la etiqueta cambia mientras se elimina, la eliminación falla con «The tag was changed by someone else. Reload it and try again.».
Cómo llegan los cambios a los documentos
Crear, actualizar y eliminar una etiqueta con esta API se guarda de inmediato en las etiquetas. Mientras user.tag.enabled sea true, el cambio para los documentos (rutas añadidas y quitadas, un cambio de nombre o una eliminación) se pone en cola y lo aplica cada minuto el trabajo «Log Aggregator» (log_aggregator). Mientras sea false no se pone nada en cola; ejecute el trabajo «Tag Updater» (tag_updater) después de habilitar las etiquetas. Consulte Etiqueta de usuario.
Ejemplos de uso
Compartir una etiqueta con todos los usuarios que han iniciado sesión
Obtener las etiquetas de un usuario
Véase también
Visión General de Admin API - Descripción general de Admin API
API de etiquetas de usuario - API de etiquetas de usuario
Etiqueta de usuario - Guía de gestión de etiquetas de usuario