Redmine¶
Redmine API¶
Ref: http://www.redmine.org/projects/redmine/wiki/Rest_api
- https://www.ainoniwa.net/redmine/settings?tab=api に行って、RESTによるWebサービスを有効にするにチェックを入れる
- http://www.ainoniwa.net/my/account に行って、APIトークンを取得する
- API実行はURLの後ろに
key=YOUR_API_ACCESS_TOKEN
を付けたらいい - アクセス先の拡張子を切り替えれば、XMLかJSONのどちらの形式か選べる
例えばWikiの一覧を取得する場合はこう。
$ curl -s http://www.ainoniwa.net/projects/home_server/wiki/index.json?key=YOUR_API_ACCESS_TOKEN | python -m json.tool
以下のようにフィルタを挟んでWikiのタイトルだけ拾えるし、
$ curl -s http://www.ainoniwa.net/projects/home_server/wiki/index.json?key=YOUR_API_ACCESS_TOKEN | jq '.wiki_pages[].title'
以下のようにWikiのタイトルと記事内容のテキストだけを抽出することもできる。
$ curl -s http://www.ainoniwa.net/projects/home_server/wiki/Ese.json?key=YOUR_API_ACCESS_TOKEN | jq '.wiki_page | {title, text}'
RedmineのWikiデータをAPIで取得するスニペット¶
import requests
import json
import codecs
wiki_url = 'https://www.ainoniwa.net/rwiki/projects/wiki-ainoniwa-net/wiki'
params = {"key": "Your API access token"}
wiki_list = requests.get(wiki_url + 'index.json', params=params)
titles = [i['title'] for i in wiki_list.json()['wiki_pages']]
for title in titles:
post = requests.get(wiki_url + title + '.json', params=params)
with codecs.open(title + '.md', 'w', 'utf-8') as f:
print(u"Writing {} ...".format(title))
f.write(post.json()['wiki_page']['text'])
最終更新日: 2021-05-19 14:16:14