Vue d’ensemble de l’API Admin

Vue d’ensemble

L’API d’administration Fess est une API RESTful permettant d’acceder aux fonctions d’administration par programmation. Les configurations de crawl, la gestion des utilisateurs, le controle du planificateur et la plupart des operations disponibles dans l’interface d’administration peuvent etre executees via l’API.

En utilisant cette API, vous pouvez automatiser la configuration de Fess ou l’integrer a des systemes externes.

URL de base

L’URL de base de l’API d’administration est au format suivant :

http://<Nom du serveur>/api/admin/

Par exemple, dans un environnement local :

http://localhost:8080/api/admin/

Authentification

L’acces a l’API d’administration necessite une authentification par jeton d’acces.

Obtention d’un jeton d’acces

  1. Connectez-vous a l’interface d’administration

  2. Allez dans « Systeme » -> « Jetons d’acces »

  3. Cliquez sur « Nouveau »

  4. Entrez un nom de jeton et selectionnez les permissions necessaires

  5. Cliquez sur « Creer » pour obtenir le jeton

Utilisation du jeton

Incluez le jeton d’acces dans l’en-tete de la requete :

Authorization: Bearer <jeton d'acces>

Ou specifiez-le comme parametre de requete :

?token=<jeton d'acces>

Exemple cURL

curl -H "Authorization: Bearer YOUR_TOKEN" \
     "http://localhost:8080/api/admin/scheduler/settings"

Permissions requises

Pour utiliser l’API d’administration, le jeton doit avoir les permissions suivantes :

  • admin-* - Acces a toutes les fonctions d’administration

  • admin-scheduler - Gestion du planificateur uniquement

  • admin-user - Gestion des utilisateurs uniquement

  • Autres permissions specifiques a chaque fonction

Patterns communs

Obtention de la liste (GET/PUT /settings)

Obtient la liste des parametres.

Requete

GET /api/admin/<resource>/settings
PUT /api/admin/<resource>/settings

Parametres (pagination) :

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

Reponse

{
  "response": {
    "status": 0,
    "settings": [...],
    "total": 100
  }
}

Obtention d’un parametre unique (GET /setting/{id})

Obtient un parametre unique en specifiant son ID.

Requete

GET /api/admin/<resource>/setting/{id}

Reponse

{
  "response": {
    "status": 0,
    "setting": {...}
  }
}

Creation (POST /setting)

Cree un nouveau parametre.

Requete

POST /api/admin/<resource>/setting
Content-Type: application/json

{
  "name": "...",
  "...": "..."
}

Reponse

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

Mise a jour (PUT /setting)

Met a jour un parametre existant.

Requete

PUT /api/admin/<resource>/setting
Content-Type: application/json

{
  "id": "...",
  "name": "...",
  "...": "..."
}

Reponse

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

Suppression (DELETE /setting/{id})

Supprime un parametre.

Requete

DELETE /api/admin/<resource>/setting/{id}

Reponse

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

Format des reponses

Reponse de succes

{
  "response": {
    "status": 0,
    ...
  }
}

status: 0 indique un succes.

Reponse d’erreur

{
  "response": {
    "status": 1,
    "errors": [
      {"code": "errors.failed_to_create", "args": ["...", "..."]}
    ]
  }
}

Codes de statut HTTP

Code Description
200 Requete reussie
400 Parametres de requete invalides
401 Authentification requise (jeton manquant ou invalide)
403 Permission refusee
404 Ressource non trouvee
500 Erreur interne du serveur

APIs disponibles

Fess fournit les APIs d’administration suivantes.

Configuration du crawl

Endpoint Description
API WebConfig Configuration du crawl Web
API FileConfig Configuration du crawl de fichiers
API DataConfig Configuration du datastore

Gestion de l’index

Endpoint Description
API Documents Operations groupees sur les documents
API CrawlingInfo Informations de crawl
API FailureUrl Gestion des URLs en echec
API Backup Sauvegarde/Restauration

Planificateur

Endpoint Description
API Scheduler Planification des taches
API JobLog Obtention des journaux de taches

Gestion des utilisateurs et des droits

Endpoint Description
API User Gestion des utilisateurs
API Role Gestion des roles
API Group Gestion des groupes
API AccessToken Gestion des jetons API

Optimisation de la recherche

Endpoint Description
API LabelType Types de labels
API KeyMatch Key Match
API BoostDoc Boost de documents
API ElevateWord Mots eleves
API BadWord Mots interdits
API RelatedContent Contenus associes
API RelatedQuery Requetes associees
API Suggest Gestion des suggestions

Systeme

Endpoint Description
API General Parametres generaux
API SystemInfo Informations systeme
API Stats Statistiques systeme
API Log Obtention des journaux
API Storage Gestion du stockage
API Plugin Gestion des plugins

Dictionnaire

Endpoint Description
API Dict Gestion des dictionnaires (synonymes, mots vides, etc.)

Exemples d’utilisation

Creation d’une configuration de crawl Web

curl -X POST "http://localhost:8080/api/admin/webconfig/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "Example Site",
       "urls": "https://example.com/",
       "includedUrls": ".*example.com.*",
       "excludedUrls": "",
       "maxAccessCount": 1000,
       "depth": 3,
       "available": true
     }'

Demarrage d’une tache planifiee

curl -X PUT "http://localhost:8080/api/admin/scheduler/{job_id}/start" \
     -H "Authorization: Bearer YOUR_TOKEN"

Obtention de la liste des utilisateurs

curl "http://localhost:8080/api/admin/user/settings?size=50&page=0" \
     -H "Authorization: Bearer YOUR_TOKEN"

Informations complementaires