概要
Fess Admin APIは、管理機能にプログラムからアクセスするためのRESTful APIです。 クロール設定、ユーザー管理、スケジューラー制御など、管理画面で行える操作のほとんどをAPI経由で実行できます。
このAPIを使用することで、Fess の設定を自動化したり、外部システムと連携したりすることが可能です。
ベースURL
Admin APIのベースURLは以下の形式です:
http://<Server Name>/api/admin/
例えば、ローカル環境の場合:
http://localhost:8080/api/admin/
認証
Admin APIにアクセスするには、アクセストークンによる認証が必要です。
アクセストークンの取得
管理画面にログイン
「システム」→「アクセストークン」に移動
「新規作成」をクリック
トークン名を入力し、必要な権限を選択
「作成」をクリックしてトークンを取得
トークンの使用
リクエストヘッダーにアクセストークンを含めます:
Authorization: Bearer <アクセストークン>
または、クエリパラメーターで指定:
?token=<アクセストークン>
cURL例
curl -H "Authorization: Bearer YOUR_TOKEN" \
"http://localhost:8080/api/admin/scheduler/settings"
必要な権限
Admin APIを使用するには、トークンに以下の権限が必要です:
admin-*- すべての管理機能へのアクセスadmin-scheduler- スケジューラー管理のみadmin-user- ユーザー管理のみその他、機能ごとの権限
共通パターン
一覧取得(GET/PUT /settings)
設定の一覧を取得します。
リクエスト
GET /api/admin/<resource>/settings
PUT /api/admin/<resource>/settings
パラメーター(ページネーション):
| パラメーター | 型 | 説明 |
|---|---|---|
size | Integer | 1ページあたりの件数(デフォルト: 20) |
page | Integer | ページ番号(0から開始) |
レスポンス
{
"response": {
"status": 0,
"settings": [...],
"total": 100
}
}
単一設定取得(GET /setting/{id})
IDを指定して単一の設定を取得します。
リクエスト
GET /api/admin/<resource>/setting/{id}
レスポンス
{
"response": {
"status": 0,
"setting": {...}
}
}
新規作成(POST /setting)
新しい設定を作成します。
リクエスト
POST /api/admin/<resource>/setting
Content-Type: application/json
{
"name": "...",
"...": "..."
}
レスポンス
{
"response": {
"status": 0,
"id": "created_id",
"created": true
}
}
更新(PUT /setting)
既存の設定を更新します。
リクエスト
PUT /api/admin/<resource>/setting
Content-Type: application/json
{
"id": "...",
"name": "...",
"...": "..."
}
レスポンス
{
"response": {
"status": 0,
"id": "updated_id",
"created": false
}
}
削除(DELETE /setting/{id})
設定を削除します。
リクエスト
DELETE /api/admin/<resource>/setting/{id}
レスポンス
{
"response": {
"status": 0,
"id": "deleted_id",
"created": false
}
}
レスポンス形式
成功レスポンス
{
"response": {
"status": 0,
...
}
}
status: 0 は成功を示します。
エラーレスポンス
{
"response": {
"status": 1,
"errors": [
{"code": "errors.failed_to_create", "args": ["...", "..."]}
]
}
}
HTTPステータスコード
| コード | 説明 |
|---|---|
| 200 | リクエスト成功 |
| 400 | リクエストパラメーターが不正 |
| 401 | 認証が必要(トークンなしまたは無効) |
| 403 | アクセス権限がない |
| 404 | リソースが見つからない |
| 500 | サーバー内部エラー |
利用可能なAPI
Fess は以下のAdmin APIを提供しています。
クロール設定
| エンドポイント | 説明 |
|---|---|
| WebConfig API | Webクロール設定 |
| FileConfig API | ファイルクロール設定 |
| DataConfig API | データストア設定 |
インデックス管理
| エンドポイント | 説明 |
|---|---|
| Documents API | ドキュメント一括操作 |
| CrawlingInfo API | クロール情報 |
| FailureUrl API | 失敗URL管理 |
| Backup API | バックアップ/リストア |
スケジューラー
| エンドポイント | 説明 |
|---|---|
| Scheduler API | ジョブスケジューリング |
| JobLog API | ジョブログ取得 |
ユーザー・権限管理
| エンドポイント | 説明 |
|---|---|
| User API | ユーザー管理 |
| Role API | ロール管理 |
| Group API | グループ管理 |
| AccessToken API | APIトークン管理 |
検索チューニング
| エンドポイント | 説明 |
|---|---|
| LabelType API | ラベルタイプ |
| KeyMatch API | キーマッチ |
| BoostDoc API | ドキュメントブースト |
| ElevateWord API | エレベートワード |
| BadWord API | NGワード |
| RelatedContent API | 関連コンテンツ |
| RelatedQuery API | 関連クエリ |
| Suggest API | サジェスト管理 |
システム
| エンドポイント | 説明 |
|---|---|
| General API | 一般設定 |
| SystemInfo API | システム情報 |
| Stats API | システム統計 |
| Log API | ログ取得 |
| Storage API | ストレージ管理 |
| Plugin API | プラグイン管理 |
辞書
| エンドポイント | 説明 |
|---|---|
| Dict API | 辞書管理(シノニム、ストップワード等) |
使用例
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
}'
スケジュールジョブの開始
curl -X PUT "http://localhost:8080/api/admin/scheduler/{job_id}/start" \
-H "Authorization: Bearer YOUR_TOKEN"
ユーザーの一覧取得
curl "http://localhost:8080/api/admin/user/settings?size=50&page=0" \
-H "Authorization: Bearer YOUR_TOKEN"