API DataConfig

Vue d’ensemble

L’API DataConfig permet de gerer les configurations de datastore de Fess. Vous pouvez manipuler les configurations de crawl pour les bases de donnees, les fichiers CSV, JSON et autres sources de donnees.

URL de base

/api/admin/dataconfig

Liste des endpoints

Methode Chemin Description
GET/PUT /settings Obtention de la liste des configurations datastore
GET /setting/{id} Obtention d’une configuration datastore
POST /setting Creation d’une configuration datastore
PUT /setting Mise a jour d’une configuration datastore
DELETE /setting/{id} Suppression d’une configuration datastore

Obtention de la liste des configurations datastore

Requete

GET /api/admin/dataconfig/settings
PUT /api/admin/dataconfig/settings

Parametres

Parametre Type Requis Description
size Integer Non Nombre d’elements par page (par defaut : 20)
page Integer Non Numero de page (commence a 0)

Reponse

{
  "response": {
    "status": 0,
    "settings": [
      {
        "id": "dataconfig_id_1",
        "name": "Database Crawler",
        "handlerName": "DatabaseDataStore",
        "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/mydb",
        "handlerScript": "...",
        "boost": 1.0,
        "available": true,
        "sortOrder": 0
      }
    ],
    "total": 5
  }
}

Obtention d’une configuration datastore

Requete

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

Reponse

{
  "response": {
    "status": 0,
    "setting": {
      "id": "dataconfig_id_1",
      "name": "Database Crawler",
      "handlerName": "DatabaseDataStore",
      "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/mydb\nusername=dbuser\npassword=dbpass",
      "handlerScript": "...",
      "boost": 1.0,
      "available": true,
      "sortOrder": 0,
      "permissions": ["admin"],
      "virtualHosts": [],
      "labelTypeIds": []
    }
  }
}

Creation d’une configuration datastore

Requete

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

Corps de la requete

{
  "name": "Product Database",
  "handlerName": "DatabaseDataStore",
  "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/products\nusername=user\npassword=pass",
  "handlerScript": "url=\"https://example.com/product/\" + data.product_id\ntitle=data.product_name\ncontent=data.description",
  "boost": 1.0,
  "available": true,
  "permissions": ["admin", "user"],
  "labelTypeIds": ["label_id_1"]
}

Description des champs

Champ Requis Description
name Oui Nom de la configuration
handlerName Oui Nom du gestionnaire de datastore
handlerParameter Non Parametres du gestionnaire (informations de connexion, etc.)
handlerScript Oui Script de transformation des donnees
boost Non Valeur de boost des resultats de recherche (par defaut : 1.0)
available Non Active/Desactive (par defaut : true)
sortOrder Non Ordre d’affichage
permissions Non Roles autorises
virtualHosts Non Hotes virtuels
labelTypeIds Non IDs des types de labels

Reponse

{
  "response": {
    "status": 0,
    "id": "new_dataconfig_id",
    "created": true
  }
}

Mise a jour d’une configuration datastore

Requete

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

Corps de la requete

{
  "id": "existing_dataconfig_id",
  "name": "Updated Product Database",
  "handlerName": "DatabaseDataStore",
  "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/products\nusername=user\npassword=newpass",
  "handlerScript": "url=\"https://example.com/product/\" + data.product_id\ntitle=data.product_name\ncontent=data.description + \" \" + data.features",
  "boost": 1.5,
  "available": true,
  "versionNo": 1
}

Reponse

{
  "response": {
    "status": 0,
    "id": "existing_dataconfig_id",
    "created": false
  }
}

Suppression d’une configuration datastore

Requete

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

Reponse

{
  "response": {
    "status": 0,
    "id": "deleted_dataconfig_id",
    "created": false
  }
}

Types de gestionnaires

Nom du gestionnaire Description
DatabaseDataStore Connexion a une base de donnees via JDBC
CsvDataStore Lecture des donnees depuis un fichier CSV
JsonDataStore Lecture des donnees depuis un fichier JSON ou une API JSON

Exemples d’utilisation

Configuration de crawl de base de donnees

curl -X POST "http://localhost:8080/api/admin/dataconfig/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "User Database",
       "handlerName": "DatabaseDataStore",
       "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/userdb\nusername=dbuser\npassword=dbpass\nsql=SELECT * FROM users WHERE active=true",
       "handlerScript": "url=\"https://example.com/user/\" + data.user_id\ntitle=data.username\ncontent=data.profile",
       "boost": 1.0,
       "available": true
     }'

Informations complementaires