REST API ページ操作
Web ブラウザを使わずに Wiki ページの読み書きを行うことができます。
プログラムの知識が必要です。
https://api.wikiwiki.jp/<wiki-id>/...
<wiki-id>
部分に操作対象の wiki の ID を指定します。
※コントロールパネルの各種設定からAPI使用の許可をしてください。
認証
POST https://api.wikiwiki.jp/<wiki-id>/auth
他の操作を行うためのトークンを得ることができます。
使用例
curl -X POST "https://api.wikiwiki.jp/<wiki-id>/auth" \
-H "Content-Type: application/json" \
-d "{\"password\": \"passw0rd\"}"
password
フィールドのある JSON オブジェクトをリクエストボディに指定します。
Content-Type は application/json
でなければなりません。
パスワードには管理者パスワードを使用します。
※サブ・パスワードは使用できません。
結果
{
"status": "ok",
"token": "eyJ0eXA..."
}
APIキーによる認証
Wiki管理人が直接パスワードを入力する必要がなくなりました。
コントロールパネルの「APIキー」から発行した APIキーを渡すことで、プログラミング等の知識がある編集者に自動化を委任することができます。
※ APIキーを利用することで大規模な編集を行うことができるため、管理パスワードと同様、漏洩には十分ご注意ください。
使用例
curl -X POST "https://api.wikiwiki.jp/test/::api/auth" \
-H "Content-Type: application/json" \
-d "{\"api_key_id\": \"949e621c-5a3b-4a27-801c-7771b67d04c5\", \"secret\": \"8PW_GWWEkDf_foBjyBPlw-pe_bfcB8n1\"}"
ページ一覧
GET https://api.wikiwiki.jp/<wiki-id>/pages
ページリストを取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-id>/pages" \
-H "Authorization: Bearer eyJ0eXA..."
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
結果
{
"pages": [
{
"name": ":config",
"timestamp": "2022-01-01T00:00:00+09:00"
},
{
"name": "FrontPage",
"timestamp": "2022-01-01T00:00:00+09:00"
},
...
]
}
ページ取得
GET https://api.wikiwiki.jp/<wiki-id>/page/<page-name>
ページ内容を取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-id>/page/FrontPage" \
-H "Authorization: Bearer eyJ0eXA..."
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
結果
{
"page": "FrontPage",
"source": "TITLE:FrontPage(お好きなタイトルに変更して下さい)\n...",
"timestamp": "2022-01-01T00:00:00+09:00"
}
ページ書き込み
PUT https://wikiwiki.jp/<wiki-id>/page/<page-name>
ページ内容を書き込みます。
使用例
curl -X PUT "https://api.wikiwiki.jp/<wiki-id>/page/TestPage" \
-H "Authorization: Bearer eyJ0eXA..." \
-H "Content-Type: application/json" \
-d "{\"source\": \"テストページです\"}"
/auth
で得られた token フィールドの内容を Authorization ヘッダに Bearer で指定します。
source
フィールドのある JSON オブジェクトをリクエストボディに指定します。
Content-Type は application/json
でなければなりません。
結果
{
"status": "ok"
}
レートリミット
ひとつの Wiki あたり 1 時間に 2000 回のオペレーションが上限です。
また 1 分間に 120 回を超えるペースでのオペレーションはできません。
レートリミットは Wiki への操作の合計回数にかかります。トークンあたりの回数ではないのでご注意ください。