カテゴリ:API
HTTPプロトコルを利用して、Webブラウザを介さずにPukiWikiのページや添付ファイルを操作できる機能。
認証
すべてのリクエスト(auth エンドポイント以外)には、 Authorization ヘッダーに Bearerトークンを含める必要がある。
Authorization: Bearer [TOKEN]
トークン
- 管理者トークン:管理者用。全権限付与
- 一時トークン:auth エンドポイントで発行される。有効期限あり
トークン取得
POST /api/v1/auth
管理者パスワードを使用して一時トークンを取得する。
リクエストボディ (JSON):
{
"password": "管理者パスワード"
}
レスポンス: 200 OK
レスポンス例:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"expires_at": "2026-01-23T12:00:00+00:00",
"expires_in": 900
}
エンドポイント
ページ一覧取得
GET /api/v1/pages
既存のすべてのページの一覧を取得する。
一時トークンの場合は閲覧権限のあるページのみ。
レスポンス: 200 OK
レスポンス例:
{
"count": 10,
"pages": ["FrontPage", "MenuBar", ...]
}
ページ内容取得
GET /api/v1/pages/[ページ名]
指定したページの内容と更新タイムスタンプを取得する。
レスポンス: 200 OK
レスポンス例:
{
"page": "FrontPage",
"content": "# FrontPage\n\nWelcome to PukiWiki!",
"timestamp": 1705891200
}
最近更新されたページ一覧取得
GET /api/v1/recentpages/[件数]
最近更新されたページの名前とタイムスタンプを取得する。
件数を指定しない場合は10件。
レスポンス: 200 OK
レスポンス例:
{
"count": 10,
"recent": [
{
"page": "FrontPage",
"timestamp": 1705891200
},
...
]
}
添付ファイル一覧取得
GET /api/v1/attachments?page=[ページ名]
指定したページの添付ファイルの一覧を取得する。
レスポンス: 200 OK
レスポンス例:
{
"page": "FrontPage",
"count": 2,
"files": [
{
"name": "image.jpg",
"size": 12345,
"mtime": 1705891200
},
...
]
}
ページ作成
POST /api/v1/pages
新しいページを作成する。
リクエストボディ (JSON):
{
"page": "NewPage",
"content": "ページの内容"
}
レスポンス: 201 Created
レスポンス例:
{
"page": "NewPage"
}
ページ更新
PUT /api/v1/pages/[ページ名]
既存のページを更新する。
リクエストボディ (JSON):
{
"content": "更新された内容",
"touch": true
}
- touch: true の場合、タイムスタンプを更新する (デフォルト: true)
レスポンス: 200 OK
レスポンス例:
{
"page": "ExistingPage",
"touch": true
}
ページ削除
DELETE /api/v1/pages/[ページ名]
ページを削除する(空の内容で上書き)。
レスポンス: 200 OK
レスポンス例:
{
"page": "PageToDelete"
}
エラーレスポンス
エラーが発生した場合、エラーメッセージが返される。
例:
HTTP 401 Unauthorized
{
"error": "Unauthorized: Invalid token"
}
主なエラーコード:
- 400: Bad Request(必須パラメータ不足、無効なページ名など)
- 401: Unauthorized(認証失敗)
- 403: Forbidden(権限不足)
- 404: Not Found(ページが存在しない)
- 409: Conflict(ページが既に存在する)
- 500: Internal Server Error(サーバーエラー)
注意事項
- ページ名は PukiWiki の命名規則に従う必要がある。
- 作成時は page と content が必須。
- 更新時は content が必須。
- 一時トークンは15分で有効期限切れ。
コメント
Loading comments…