山川に風のかけたるしがらみは流れもあへぬもみぢなりけり
Advent Calendar 2022 82日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
「データに関する記事を書こう!」と銘打たれたイベントが開催中です。
この記事は、 テーマ1 『delikaを使った記事を書こう!』 の参加記事です。
delika API Version 1を使用してみます。
Elixirで楽しんでみます。
自分自身で書きました「delika API Version 1 をcurlで呼び出してみる」の後続記事です。
前提
以下を前提とします。
- delikaのSign upを済ませておいてください
- delika API Version 1の基本的な使い方を理解しておいてください
delika API Version 1のドキュメントを読んでいただくか、私が書いた「delika API Version 1 をcurlで呼び出してみる」を参考にしてください。
Elixirのプログラム
Refresh Token
は、 https://api.delika.io/v1/auth にブラウザでアクセスしSign inすることで得てください。
HTTPクライアントはReqを使用しています。
JSONのライブラリJasonが漏れなく付いてきます。
Mix.install([:req])
body =
%{
"RefreshToken" => "あなたが得たRefresh Token"
}
|> Jason.encode!()
%{body: %{"Data" => %{"AccessToken" => access_token}, "Status" => %{"Code" => 200}}, status: 200} =
Req.post!("https://api.delika.io/v1/auth/token", body,
headers: ["Content-Type": "application/json"], # この指定は必須です
finch_options: [pool_timeout: 50000, receive_timeout: 50000]
)
Req.get!("https://api.delika.io/v1/account/connecto-data/datasets",
headers: [Authorization: "bearer #{access_token}"],
finch_options: [pool_timeout: 50000, receive_timeout: 50000]
)
|> Map.get(:body)
|> IO.inspect()
実行
Mix.install/2を使っています。
そのため、Elixirは1.12
or laterを使用してください。
さきほど示したプログラムのファイル名は、delika_api.exs
とします。
elixir delika_api.exs
結果(2022-03-22 22:42JST)
実行結果は以下のようになりました
%{
"Data" => %{
"DatasetCount" => 2,
"DatasetList" => [
%{"AccountName" => "connecto-data", "DatasetName" => "ds-skills"},
%{"AccountName" => "connecto-data", "DatasetName" => "survey"}
]
},
"Status" => %{"Code" => 200, "Message" => "Found 2 datasets."}
}
Wrapping up
この記事では、 delika API Version 1をElixirでコールする方法を示しました。
私は楽しみました。
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
以上です。
尚々書
delikaをElixirで楽しむ準備は着々と進んでいます。
I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
I hope someday you'll join us.
We Are The Alchemists, my friends!