【初心者向き】AxiosによるWeb APIへのアクセス方法~その① Axiosの使い方
つまらないところで時間取られないようメモしておきます。超入門です。
前提知識と準備
- Node.jsがインストールされている。
 - Node.jsでのプログラムの実行方法がわかる。例:> node test.js
 - axiosがインストールされている。例:> npm i axios
 - 【推奨】Google Chromeの拡張機能のJSON Formatterがインストールされている。
 
使用するAPI
- 米国食品医薬品局(FDA)の公開されているWeb APIを用います(登録不要で無料)。詳細な仕様はこちら。
 - 登録された医療機器の識別子(UDI-DIと呼ばれる)からブランド名をなどのその医療機器の情報を得ます。
 
ブラウザからのAPIへのアクセス
ブラウザで次のURLにアクセスしてみます。
https://accessgudid.nlm.nih.gov/api/v2/devices/lookup.json?di=00302340989336
ツリー構造でJSON形式のデータが得られたと思います。
axiosからのAPIへのアクセス(成功する例)
- 次はブラウザで得られた大量の情報を同様に取得した上で、そのうちの1行だけ表示するプログラムです。
 - JSONでルート → ‘gudid’ → ‘device’ → ‘brandName’ に相当するものを得る場合、axios.get(object)に対して、object.data.gudid.device.brandName で得ることができます。
 - パスを知るためには、ブラウザやJSONをJSON Pretty Linter等のツールで見ることにより調べることができます。
 
const axios = require('axios');
const url =
  'https://accessgudid.nlm.nih.gov/api/v2/devices/lookup.json?di=003023409893361';
axios
  .get(url)
  .then((res) => {
    // 成功の場合に呼ばれる
    console.log(res.data.gudid.device.brandName);
  })
  .catch((res) => {
    // エラーの時に呼ばれる
    console.log(res);
  })
  .then(() => {
    // 必ず呼ばれる
    console.log('必ず呼ばれます。');
  });
- これを実行すると次の結果が得られます。
 
> node test.js DUREX Pleasure Pack Condom 必ず呼ばれます。
axiosからのAPIへのアクセス(失敗する例)
- 続いて上記URLの末尾に適当な文字を追加するとかして、無効なURLで呼び出してみます。
 - すると大量のエラーが console.log (res) により出力されます。
 - 一方ブラウザでは、次のように1行だけ出力されます。
 

- ターミナルでの実行結果は、JSONではなくてオブジェクトになるので、出力結果をVisual Studio Codeの.jsファイルとして保存して、整形するなどすると階層がわかります。
 - 次のコードにより、1行だけ取得できるようになりました。
 
  .catch((res) => {
    console.log(res.response.data.error); // ② こちらだけコメントアウトするとエラーになる。
  })
たぶん、その②に続きます。






ディスカッション
コメント一覧
まだ、コメントがありません