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
Connectez-vous a l’interface d’administration
Allez dans « Systeme » -> « Jetons d’acces »
Cliquez sur « Nouveau »
Entrez un nom de jeton et selectionnez les permissions necessaires
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’administrationadmin-scheduler- Gestion du planificateur uniquementadmin-user- Gestion des utilisateurs uniquementAutres 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
Vue d’ensemble de l’API - Vue d’ensemble de l’API
Présentation - Guide de gestion des jetons d’acces