このページの情報は古くなりました。
最新情報は以下のページをご確認ください。
WIKIWIKI REST API コミュニティ
https://zawazawa.jp/wikiwiki-rest-api/
WIKIWIKI 公開 REST API
Web ブラウザを使わずに Wiki ページの読み書きを行うことができます。
プログラムの知識が必要です。
https://api.wikiwiki.jp/<wiki-name>/...
<wiki-name>
部分に操作対象の wiki の名前を指定します。
※コントロールパネルの各種設定からAPI使用の許可をしてください。
認証
POST https://api.wikiwiki.jp/<wiki-name>/auth
他の操作を行うためのトークンを得ることができます。
使用例
curl -X POST "https://api.wikiwiki.jp/<wiki-name>/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-name>/pages
ページリストを取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-name>/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-name>/page/<page-name>
ページ内容を取得します。
使用例
curl "https://api.wikiwiki.jp/<wiki-name>/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-name>/page/<page-name>
ページ内容を書き込みます。
使用例
curl -X PUT "https://api.wikiwiki.jp/<wiki-name>/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 への操作の合計回数にかかります。トークンあたりの回数ではないのでご注意ください。
できそうなこと
- 記事の差分バックアップ
- 記事のリストア
- Googleスプレッドシートのデータから自動更新
- 外部データからランキングを作成し自動更新
- コメントからデータを集計して表を作成し自動更新