Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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ラッパーを作成にするあたって下記のライブラリを参考にしました

https://github.com/edgurgel/tentacat

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, マサカリ
なんでもフィードバックなど頂けると嬉しいです!

tamanugi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away