Vision General
Fess Admin API es una API RESTful para acceder programaticamente a las funciones de administracion. Puede ejecutar a traves de la API la mayoria de las operaciones disponibles en el panel de administracion, como la configuracion de rastreo, la gestion de usuarios y el control del programador.
Al utilizar esta API, puede automatizar la configuracion de Fess o integrarse con sistemas externos.
URL Base
La URL base de Admin API tiene el siguiente formato:
Por ejemplo, en un entorno local:
Autenticacion
Para acceder a Admin API, se requiere autenticacion mediante un token de acceso.
Obtencion del Token de Acceso
Inicie sesion en el panel de administracion
Vaya a «Sistema» -> «Tokens de Acceso»
Haga clic en «Crear Nuevo»
Ingrese el nombre del token y configure en el campo «Permisos» los permisos que desea otorgar al token (para usar Admin API, ingrese
{role}admin-api)Haga clic en «Crear» para obtener el token
Uso del Token
Incluya el token de acceso en el encabezado de la solicitud:
Tambien puede omitir Bearer y especificar solo el token:
La especificacion mediante parametro de consulta tambien es posible, pero esta deshabilitada de forma predeterminada. Si configura un nombre de parametro en api.access.token.request.parameter de fess_config.properties, podra pasar el token con ese nombre (como el valor predeterminado esta vacio, solo es valida la especificacion mediante el encabezado). Por ejemplo, si configura api.access.token.request.parameter=token:
Ejemplo con cURL
Permisos Requeridos
El acceso a Admin API se controla mediante un unico conjunto de permisos, no por funcion. Para utilizar cualquiera de los endpoints de Admin API, el token de acceso debe tener otorgado alguno de los permisos configurados en api.admin.access.permissions de fess_config.properties.
El valor predeterminado es Radmin-api, que es la forma codificada del rol admin-api (la R inicial es el valor de role.search.role.prefix). Al crear el token de acceso, si ingresa {role}admin-api en el campo de permisos, se almacena internamente como Radmin-api.
Nota
No existen permisos distintos por cada recurso individual (como admin-scheduler o admin-user) ni comodines (admin-*). Un token que tenga el permiso configurado puede acceder a todos los endpoints de Admin API. Si desea cambiar los permisos que conceden acceso, modifique el valor de api.admin.access.permissions.
Patrones Comunes
Los recursos que tienen configuraciones (webconfig, user, role, etc.) siguen el siguiente patron CRUD comun. Sin embargo, algunos recursos (systeminfo, stats, storage, plugin, log, backup, documents, suggest, la raiz de dict, etc.) tienen una estructura de endpoints propia distinta de este patron comun, por lo que debe consultar la pagina de cada recurso.
Obtener Lista (GET /settings)
Obtiene una lista de configuraciones.
Solicitud
Parametros (paginacion):
| Parametro | Tipo | Descripcion |
|---|---|---|
size | Integer | Numero de elementos por pagina (predeterminado: 25. Modificable mediante paging.page.size de fess_config.properties) |
page | Integer | Numero de pagina (comienza en 1. Predeterminado: 1. Si se especifica un valor menor o igual a 0, se trata como 1) |
Respuesta
Nota
El objeto response de todas las respuestas incluye siempre version, que indica la version del producto (por ejemplo, "15.7.0"). En los ejemplos siguientes puede omitirse por brevedad.
Obtener Configuracion Individual (GET /setting/{id})
Obtiene una configuracion individual especificando el ID.
Solicitud
Respuesta
Crear Nuevo (POST /setting)
Crea una nueva configuracion.
Solicitud
Respuesta
Actualizar (PUT /setting)
Actualiza una configuracion existente.
Solicitud
Respuesta
Eliminar (DELETE /setting/{id})
Elimina una configuracion.
Solicitud
Respuesta
El formato de la respuesta de eliminacion difiere segun el recurso (accion). Muchos recursos devuelven solo status.
En algunos recursos, el resultado de la eliminacion se devuelve como ApiUpdateResponse, con el id de la configuracion eliminada y created (false al eliminar).
Ademas, en los recursos que devuelven ApiDeleteResponse puede agregarse count, que indica el numero de elementos eliminados (valor predeterminado 1). Consulte la pagina de cada recurso para conocer el formato real.
Formato de Respuesta
Todas las respuestas se envuelven en un objeto response que incluye siempre version, que indica la version del producto, y status, que indica el resultado del procesamiento.
Los valores de status son los siguientes.
| Valor | Descripcion |
|---|---|
0 | OK (exito) |
1 | BAD_REQUEST (solicitud invalida) |
2 | SYSTEM_ERROR (error del sistema) |
3 | UNAUTHORIZED (error de autenticacion) |
9 | FAILED (procesamiento fallido) |
Respuesta Exitosa
status: 0 indica exito.
Respuesta de Error
En caso de error, status se establece en un valor distinto de 0 y message contiene el mensaje de error.
Codigos de Estado HTTP
Admin API devuelve en la mayoria de los casos el estado HTTP 200, y el resultado del procesamiento se indica en el campo status del cuerpo de la respuesta. Por lo tanto, no determine el exito o el fallo por el codigo de estado HTTP, sino por el valor de status del cuerpo.
Los codigos de estado HTTP que se devuelven realmente son los siguientes.
| Codigo | Descripcion |
|---|---|
| 200 | Respuesta normal. Ademas del caso de exito ( |
| 400 | Error de validacion de los parametros de la solicitud. El |
| 401 | Cuando ocurre una excepcion relacionada con la autenticacion de inicio de sesion. El |
Nota
Admin API no devuelve codigos de estado HTTP como 403, 404 o 500. Tanto los permisos insuficientes como la inexistencia de un recurso se indican mediante el status incluido en el cuerpo de la respuesta HTTP 200 o 400.
APIs Disponibles
Fess proporciona las siguientes Admin APIs.
Configuracion de Rastreo
| Endpoint | Descripcion |
|---|---|
| API de WebConfig | Configuracion de rastreo web |
| API de FileConfig | Configuracion de rastreo de archivos |
| API de DataConfig | Configuracion de almacen de datos |
Nota
Ademas, los siguientes recursos relacionados con credenciales de autenticacion y control de rastreo tambien se ofrecen como API (actualmente no tienen una pagina propia): webauth (autenticacion web), fileauth (autenticacion de archivos), reqheader (encabezados de solicitud), pathmap (mapeo de rutas), duplicatehost (hosts duplicados), searchlist (operaciones de busqueda/lista de documentos).
Gestion de Indices
| Endpoint | Descripcion |
|---|---|
| API de Documents | Operaciones masivas de documentos |
| API de CrawlingInfo | Informacion de rastreo |
| API de FailureUrl | Gestion de URLs fallidas |
| API de Backup | Copia de seguridad/Restauracion |
Programador
| Endpoint | Descripcion |
|---|---|
| API de Scheduler | Programacion de trabajos |
| API de JobLog | Obtencion de registros de trabajos |
Gestion de Usuarios y Permisos
| Endpoint | Descripcion |
|---|---|
| API de User | Gestion de usuarios |
| API de Role | Gestion de roles |
| API de Group | Gestion de grupos |
| AccessToken API | Gestion de tokens API |
Ajuste de Busqueda
| Endpoint | Descripcion |
|---|---|
| API de LabelType | Tipos de etiqueta |
| API de KeyMatch | Coincidencia de claves |
| BoostDoc API | Impulso de documentos |
| API de ElevateWord | Palabras elevadas |
| API de BadWord | Palabras prohibidas |
| RelatedContent API | Contenido relacionado |
| API de RelatedQuery | Consultas relacionadas |
| Suggest API | Gestion de sugerencias |
Sistema
| Endpoint | Descripcion |
|---|---|
| API de General | Configuracion general |
| API de SystemInfo | Informacion del sistema |
| API de Stats | Estadisticas del sistema |
| API de Log | Obtencion de registros |
| SearchList API | Busqueda y gestion de documentos |
| Storage API | Gestion de almacenamiento |
| API de Plugin | Gestion de plugins |
Diccionario
| Endpoint | Descripcion |
|---|---|
| API de Dict | Gestion de diccionarios (sinonimos, palabras vacias, etc.) |
Ejemplos de Uso
Crear Configuracion de Rastreo Web
Nota
Al crear una configuracion de rastreo web, son obligatorios name, urls, userAgent, numOfThread, intervalTime, boost, available y sortOrder. Si se omiten, se produce un error de validacion (status: 1). available se especifica como una cadena de texto y se establece en "true" o "false".
Iniciar Trabajo Programado
Obtener Lista de Usuarios
Informacion de Referencia
Descripción general de la API - Vision general de API
Token de Acceso - Guia de gestion de tokens de acceso