4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

delika API Version 1 をElixirのReqで呼び出すことを楽しむ

Last updated at Posted at 2022-03-22

山川に風のかけたるしがらみは流れもあへぬもみぢなりけり

Advent Calendar 2022 82日目1の記事です。
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私の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が漏れなく付いてきます。

delika_api.exs
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を使っています。
そのため、Elixir1.12 or laterを使用してください。
さきほど示したプログラムのファイル名は、delika_api.exsとします。

elixir delika_api.exs

結果(2022-03-22 22:42JST)

実行結果は以下のようになりました :tada::tada::tada:

%{
  "Data" => %{
    "DatasetCount" => 2,
    "DatasetList" => [
      %{"AccountName" => "connecto-data", "DatasetName" => "ds-skills"},
      %{"AccountName" => "connecto-data", "DatasetName" => "survey"}
    ]
  },
  "Status" => %{"Code" => 200, "Message" => "Found 2 datasets."}
}

Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

この記事では、 delika API Version 1Elixirでコールする方法を示しました。
私は楽しみました。

Enjoy Elixir:bangbang::bangbang::bangbang:
$\huge{Enjoy\ Elixir🚀}$

以上です。


尚々書

delikaElixirで楽しむ準備は着々と進んでいます。


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!

  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?