Qiita API v2 ラッパーをElixirで作成してみました
つくったもの
qiitex
というパッケージ名でhexに公開しています
Github : https://github.com/tamanugi/qiitex
hex : https://hex.pm/packages/qiitex
インストール方法
def deps do
[{:qiitex, "~> 0.2.0"}]
end
hexで公開しているので、mix.exsに上記を追加して
mix deps.get
でインストールできます
使い方
認証情報とAPIのエンドポイントを保持したclientを生成し、
関数に引数として渡すことで実行できます
iex> client = Qiitex.client.new %{access_token: "enteryouryoken"}
iex> Qiitex.Tags.list client
iex> Qiitex.Tags.list client, %{page: 1, per_page: 30, sort: "count"}
iex> Qiitex.Items.create client, %{title: "title", body: "body", tags: [%{name: "qiita"}]}
アクセストークンはこちら から発行してください
各関数のドキュメントはこちらをご参照ください〜 (Qiita公式ドキュメントからほぼコピペですが)
※Qiita API v2 の仕様については公式ドキュメントを参考にしてください
APIの構成について
今回APIラッパーを作成にするあたって下記のライブラリを参考にしました
lib/qiitex にて use HTTPoison.Base
でHTTPoisonモジュールを読み込んで
必要な関数のみ実装しています
GET, POST, PATCH, PUT, DELETE の各HTTPメソッドの関数を実装したら
あとはQiitaのAPIリファレンスにしたがってURLとメソッドを指定していくだけだったので
実装は楽でした
またQiita APIは JSON Schemeを公開しているので
そのJSON Schemeを利用したテストも実装してみました
http://qiita.com/api/v2/schema
http://qiita.com/api/v2/schema?locale=en
http://qiita.com/api/v2/schema?locale=ja
ExJsonSchemeという
ライブラリを用いて取得したデータの構造が正しいか確認しています
その他
Qiita:team については確認ができないため実装はしませんでした・・・残念
参考にしたもの
Elixir 実装の Qiita API v2 Client を公開しました
ElixirのライブラリをHexに公開する
最後に
コメント, issue, Pull Request, マサカリ
なんでもフィードバックなど頂けると嬉しいです!