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 :
Par exemple, dans un environnement local :
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 definissez, dans le champ « Permissions », les permissions a accorder au jeton (pour utiliser l’API d’administration, saisissez
{role}admin-api)Cliquez sur « Creer » pour obtenir le jeton
Utilisation du jeton
Incluez le jeton d’acces dans l’en-tete de la requete :
Vous pouvez aussi omettre Bearer et ne specifier que le jeton :
La specification via un parametre de requete est egalement possible, mais elle est desactivee par defaut. Si vous definissez un nom de parametre dans api.access.token.request.parameter du fichier fess_config.properties, vous pourrez transmettre le jeton sous ce nom (la valeur par defaut etant vide, seule la specification par en-tete est active). Par exemple, si vous definissez api.access.token.request.parameter=token :
Exemple cURL
Permissions requises
L’acces a l’API d’administration n’est pas controle par fonction, mais par un unique jeu de permissions. Pour utiliser l’un quelconque des endpoints de l’API d’administration, le jeton d’acces doit s’etre vu accorder l’une des permissions definies dans api.admin.access.permissions du fichier fess_config.properties.
La valeur par defaut est Radmin-api, qui est la forme encodee du role admin-api (le R initial est la valeur de role.search.role.prefix). Lors de la creation du jeton d’acces, si vous saisissez {role}admin-api dans le champ des permissions, il est enregistre en interne sous la forme Radmin-api.
Note
Il n’existe pas de permissions distinctes par ressource (telles que admin-scheduler ou admin-user), ni de caractere generique (admin-*). Un jeton disposant de la permission configuree peut acceder a tous les endpoints de l’API d’administration. Si vous souhaitez modifier les permissions qui autorisent l’acces, changez la valeur de api.admin.access.permissions.
Patterns communs
Les ressources possedant des parametres (webconfig, user, role, etc.) suivent le pattern CRUD commun ci-dessous. Toutefois, certaines ressources (systeminfo, stats, storage, plugin, log, backup, documents, suggest, racine dict, etc.) disposent d’une structure d’endpoints propre, differente de ce pattern commun ; reportez-vous a la page de chaque ressource.
Obtention de la liste (GET /settings)
Obtient la liste des parametres.
Requete
Parametres (pagination) :
| Parametre | Type | Description |
|---|---|---|
size | Integer | Nombre d’elements par page (par defaut : 25 ; modifiable via paging.page.size du fichier fess_config.properties) |
page | Integer | Numero de page (commence a 1 ; par defaut : 1 ; une valeur inferieure ou egale a 0 est traitee comme 1) |
Reponse
Note
L’objet response de toutes les reponses contient toujours version (par exemple "15.7.0"), indiquant la version du produit. Dans les exemples suivants, il peut etre omis par souci de concision.
Obtention d’un parametre unique (GET /setting/{id})
Obtient un parametre unique en specifiant son ID.
Requete
Reponse
Creation (POST /setting)
Cree un nouveau parametre.
Requete
Reponse
Mise a jour (PUT /setting)
Met a jour un parametre existant.
Requete
Reponse
Suppression (DELETE /setting/{id})
Supprime un parametre.
Requete
Reponse
Le format de la reponse de suppression varie selon la ressource (l’action). De nombreuses ressources ne retournent que status.
Pour certaines ressources, le resultat de la suppression est retourne sous forme de ApiUpdateResponse, avec l”id du parametre supprime et created (false lors d’une suppression).
De plus, pour les ressources qui retournent un ApiDeleteResponse, un champ count indiquant le nombre d’elements supprimes (valeur par defaut 1) peut etre ajoute. Reportez-vous a la page de chaque ressource pour le format exact.
Format des reponses
Toutes les reponses sont encapsulees dans un objet response et contiennent toujours version, indiquant la version du produit, ainsi que status, indiquant le resultat du traitement.
Les valeurs de status sont les suivantes.
| Valeur | Description |
|---|---|
0 | OK (succes) |
1 | BAD_REQUEST (requete invalide) |
2 | SYSTEM_ERROR (erreur systeme) |
3 | UNAUTHORIZED (erreur d’authentification) |
9 | FAILED (echec du traitement) |
Reponse de succes
status: 0 indique un succes.
Reponse d’erreur
En cas d’erreur, status est defini sur une valeur differente de 0 et message contient le message d’erreur.
Codes de statut HTTP
L’API d’administration retourne dans la plupart des cas le statut HTTP 200, et le resultat du traitement est exprime par le champ status du corps de la reponse. Par consequent, determinez le succes ou l’echec non pas a partir du code de statut HTTP, mais a partir de la valeur de status dans le corps.
Les codes de statut HTTP reellement retournes sont les suivants.
| Code | Description |
|---|---|
| 200 | Reponse normale. Outre les cas de succes ( |
| 400 | Erreur de validation des parametres de requete. Le |
| 401 | Lorsqu’une exception liee a l’authentification de connexion se produit. Le |
Note
L’API d’administration ne retourne pas de codes de statut HTTP tels que 403, 404 ou 500. L’insuffisance de permissions et l’inexistence d’une ressource sont egalement indiquees par le status contenu dans le corps de la reponse HTTP 200 ou 400.
APIs disponibles
Fess fournit les APIs d’administration suivantes.
Configuration du crawl
| Endpoint | Description |
|---|---|
| WebConfig API | Configuration du crawl Web |
| FileConfig API | Configuration du crawl de fichiers |
| API DataConfig | Configuration du datastore |
Note
Outre celles-ci, les ressources suivantes relatives aux informations d’authentification et au controle du crawl sont egalement fournies en tant qu’API (pour l’instant, aucune page dediee n’est disponible) : webauth (authentification Web), fileauth (authentification de fichiers), reqheader (en-tetes de requete), pathmap (mappage de chemins), duplicatehost (hotes en double), searchlist (operations de recherche/liste de documents).
Gestion de l’index
| Endpoint | Description |
|---|---|
| Documents API | 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 |
|---|---|
| User API | Gestion des utilisateurs |
| API Role | Gestion des roles |
| API Group | Gestion des groupes |
| AccessToken API | Gestion des jetons API |
Optimisation de la recherche
| Endpoint | Description |
|---|---|
| LabelType API | Types de labels |
| KeyMatch API | Key Match |
| BoostDoc API | Boost de documents |
| API ElevateWord | Mots eleves |
| API BadWord | Mots interdits |
| RelatedContent API | Contenus associes |
| API RelatedQuery | Requetes associees |
| Suggest API | Gestion des suggestions |
Systeme
| Endpoint | Description |
|---|---|
| API General | Parametres generaux |
| API SystemInfo | Informations systeme |
| API Stats | Statistiques systeme |
| API Log | Obtention des journaux |
| SearchList API | Recherche et gestion des documents |
| Storage API | 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
Note
Pour la creation d’une configuration de crawl Web, les champs name, urls, userAgent, numOfThread, intervalTime, boost, available et sortOrder sont obligatoires. Les omettre provoque une erreur de validation (status: 1). available se specifie sous forme de chaine de caracteres, en y placant "true" ou "false".
Demarrage d’une tache planifiee
Obtention de la liste des utilisateurs
Informations complementaires
Vue d’ensemble de l’API - Vue d’ensemble de l’API
Présentation - Guide de gestion des jetons d’acces