RelatedContent API

Visión General

La API de RelatedContent es una API para gestionar el contenido relacionado de Fess. Permite mostrar contenido personalizado relacionado con palabras clave específicas.

URL Base

/api/admin/relatedcontent

Lista de Endpoints

Método Ruta Descripción
GET /settings Listar contenido relacionado
GET /setting/{id} Obtener contenido relacionado
POST /setting Crear contenido relacionado
PUT /setting Actualizar contenido relacionado
DELETE /setting/{id} Eliminar contenido relacionado

Listar Contenido Relacionado

Solicitud

GET /api/admin/relatedcontent/settings

Parámetros

Parámetro Tipo Requerido Descripción
size Integer No Número de elementos por página (predeterminado: 25; configurable mediante paging.page.size en fess_config.properties)
page Integer No Número de página (comienza en 1, predeterminado: 1; los valores de 0 o menos se tratan como 1)
term String No Filtrar por palabra clave de búsqueda (búsqueda con comodines)
content String No Filtrar por cuerpo del contenido (búsqueda con comodines)

Respuesta

{
  "response": {
    "version": "15.7.0",
    "status": 0,
    "settings": [
      {
        "id": "content_id_1",
        "term": "fess",
        "content": "<div>Fess is an open source search server.</div>",
        "virtualHost": "",
        "sortOrder": 0,
        "createdBy": "admin",
        "createdTime": 1700000000000,
        "updatedBy": "admin",
        "updatedTime": 1700000000000,
        "versionNo": 1
      }
    ],
    "total": 5
  }
}

Nota

Cada elemento de settings y el objeto setting devuelto por el endpoint de obtención contienen los campos de la entidad almacenada tal como están. Además de term, content, sortOrder y virtualHost, también se devuelven los campos de auditoría createdBy, createdTime, updatedBy, updatedTime y el campo de bloqueo optimista versionNo. createdTime y updatedTime se expresan como milisegundos desde el epoch (números). Los campos que no están establecidos (null) se omiten de la respuesta. Además, el objeto response de todas las respuestas incluye siempre version, que indica la versión del producto (consulte Vision General de Admin API para más detalles).

Obtener Contenido Relacionado

Solicitud

GET /api/admin/relatedcontent/setting/{id}

Respuesta

{
  "response": {
    "version": "15.7.0",
    "status": 0,
    "setting": {
      "id": "content_id_1",
      "term": "fess",
      "content": "<div>Fess is an open source search server.</div>",
      "virtualHost": "",
      "sortOrder": 0,
      "createdBy": "admin",
      "createdTime": 1700000000000,
      "updatedBy": "admin",
      "updatedTime": 1700000000000,
      "versionNo": 1
    }
  }
}

Nota

El valor de versionNo necesario al actualizar (PUT) es el valor incluido en esta respuesta de obtención.

Crear Contenido Relacionado

Solicitud

POST /api/admin/relatedcontent/setting
Content-Type: application/json

Cuerpo de la Solicitud

{
  "term": "search",
  "content": "<div class='related'><h3>About Search</h3><p>Learn more about search features...</p></div>",
  "sortOrder": 0,
  "virtualHost": ""
}

Descripción de Campos

Campo Requerido Descripción
term Palabra clave de búsqueda (máx. 10000 caracteres)
content Contenido HTML a mostrar (máx. 10000 caracteres)
sortOrder No Orden de visualización (entero entre 0 y 2147483647)
virtualHost No Host virtual (máx. 1000 caracteres)

Respuesta

{
  "response": {
    "version": "15.7.0",
    "status": 0,
    "id": "new_content_id",
    "created": true
  }
}

Actualizar Contenido Relacionado

Solicitud

PUT /api/admin/relatedcontent/setting
Content-Type: application/json

Cuerpo de la Solicitud

{
  "id": "existing_content_id",
  "term": "search",
  "content": "<div class='related updated'><h3>About Search</h3><p>Updated information...</p></div>",
  "sortOrder": 0,
  "virtualHost": "",
  "versionNo": 1
}

Descripción de Campos

Campo Requerido Descripción
id ID del contenido relacionado a actualizar (máx. 1000 caracteres)
term Palabra clave de búsqueda (máx. 10000 caracteres)
content Contenido HTML a mostrar (máx. 10000 caracteres)
sortOrder No Orden de visualización (entero entre 0 y 2147483647)
virtualHost No Host virtual (máx. 1000 caracteres)
versionNo Número de versión para el bloqueo optimista. Especifique el valor incluido en la respuesta de setting/{id}.

Respuesta

{
  "response": {
    "version": "15.7.0",
    "status": 0,
    "id": "existing_content_id",
    "created": false
  }
}

Nota

Los campos de auditoría como createdBy, createdTime, updatedBy, updatedTime y crudMode se ignoran aunque se incluyan en el cuerpo de la solicitud, ya que son establecidos automáticamente en el lado del servidor. No es necesario especificarlos al crear o actualizar.

Eliminar Contenido Relacionado

Solicitud

DELETE /api/admin/relatedcontent/setting/{id}

Respuesta

{
  "response": {
    "version": "15.7.0",
    "status": 0
  }
}

Ejemplos de Uso

Contenido Relacionado de Información de Producto

curl -X POST "http://localhost:8080/api/admin/relatedcontent/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "term": "product",
       "content": "<div class=\"product-info\"><h3>Our Products</h3><ul><li>Product A</li><li>Product B</li></ul></div>",
       "sortOrder": 0
     }'

Contenido Relacionado de Información de Soporte

curl -X POST "http://localhost:8080/api/admin/relatedcontent/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "term": "support",
       "content": "<div><p>Need help? Contact: support@example.com</p></div>",
       "sortOrder": 0
     }'

Información de Referencia