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

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

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