LoginSignup
4
0

More than 5 years have passed since last update.

[Elixir] Qiita API v2 ラッパーを作成してみた

Posted at

Qiita API v2 ラッパーをElixirで作成してみました

つくったもの

qiitex というパッケージ名でhexに公開しています

Github : https://github.com/tamanugi/qiitex
hex : https://hex.pm/packages/qiitex

インストール方法

mix.exs
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 については確認ができないため実装はしませんでした・・・残念

参考にしたもの

tentacat
qiita-rb

Elixir 実装の Qiita API v2 Client を公開しました
ElixirのライブラリをHexに公開する

最後に

コメント, issue, Pull Request, マサカリ
なんでもフィードバックなど頂けると嬉しいです!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0