はじめに
ドキュメント共有サービスであるesa.ioではAPIを公開していて、APIを通して記事やコメントの取得や作成、スターをつけたりけしたり等広くesa.ioの機能を利用できます。
今回は、pythonでesa.ioのAPIを触ってみましょう!
インストール
pythonで作成されたesa APIのクライアントライブラリを利用して、APIにアクセスします。
ライブラリ: piyo
pip install piyo
APIを叩いてみる
とりあえず、クライアントをnewします。
<access_token>
と<team_name>
は自分のアクセストークンとチーム名に置き換えてください。
Clientにアクセストークンを渡す代わりに、環境変数のESA_ACCESS_TOKENにアクセストークンをセットしても大丈夫です。
from piyo import Client
def main():
client = Client(access_token='<access_token>', current_team='<team_name>')
if __name__ == '__main__':
main()
後はclientのメソッドから、各種エンドポイントにアクセスできます。
今回は基本的な使い方の確認が目的なので、一部の機能のみ紹介します。
記事一覧
posts = client.posts()
print(posts)
# => {'posts':[...] 'prev_page': None, 'next_page': 2, 'total_count': 134, 'page': 1, 'per_page': 20, 'max_per_page': 100}
記事詳細情報
post = client.post(1)
print(post)
# => {'number': 1, 'name': 'README.md', 'full_name': 'README.md', 'wip': False, 'body_md': ... }
記事作成
post = client.create_post({"post": {"name": "hi!"}})
print(post)
# => {'number': 2031, 'name': 'hi!', 'full_name': 'hi!', 'wip': True, 'body_md': '', ...
記事更新
post = client.update_post(post["number"], {"post": {"name": "updated test"}})
print(post["name"])
# => updated test
記事削除
post = client.create_post({"post": {"name": "test"}})
client.delete_post(post["number"])
# => None
スター関連
# 記事にスターをつける
post = client.add_post_star(2007)
print(post)
# => None
# 記事にスターをつけた人一覧
stargazers = client.post_stargazers(2007)
print(stargazers)
# => {'stargazers': [{'created_at': ..., 'body': None, 'user': {'myself': True, ...
# 記事につけたスターを取り消す
client.delete_post_star(2007)
# 記事にスターをつけた人一覧
stargazers = client.post_stargazers(2007)
print(stargazers)
# => {'stargazers': [], 'prev_page': None, ...
チーム関連
# チームの情報を取得する
team = client.team()
print(team)
# => {'name': '...', 'privacy': 'closed', ...
# メンバーの一覧を取得する
members = client.members()
print(members)
# => 'members': [{'myself': False, 'name': ...
最後に
快適なesaライフを!