2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

APIを叩いて結果をコンソールログに出す、それだけのウェブページ

Posted at

await fetch を使ったAPI実行の構文

JavaScriptでAPIを実行する書き方はいろいろあり、使うAPIによっても異なるのですが、
簡単なものなら下記の構文で実行することができます。

response = await fetch('ここにAPIのURLを書く');
result = await response.json();

fetch(URL) でリクエストを送り、レスポンスをjson形式に変換しています。
これらの処理に await を付けているのは、レスポンスの受け取りや読み取りがちゃんとできてから後続処理に進んでほしいからです。

htmlファイル

さきほどの構文を使って
APIを叩いて結果をコンソールログに出す、それだけのウェブページ
を作ってみました。
下記のコードを記述したhtmlファイルを作って開き、デベロッパーツールを見れば、コンソールログに結果が出ます。

<html>
<head>
    <title>API実験ページ</title>
</head>
<body>
    デベロッパーツールのコンソールで結果を確認してください。
    <script>
        async function fetchData() {
            response = await fetch('ここにURLを書く');
            result = await response.json();
            console.log(result);
        }
        fetchData();
    </script>
</body>
</html>

一連の処理を行う fetchData 関数を呼ぶだけの超シンプルなページです。
ちなみに await が使えるのは async が付いている関数の中だけ、というルールがあるので fetchData 関数には async を付けています(これを付けないとコンパイルエラーになります)。

いろいろなAPIで試してみる

さっそく 'ここにURLを書く' のところにURLを当てはめて試してみましょう。
サクッと使える例を4つほど紹介します。

◇国情報の取得

REST Countries API というAPIを使うと国情報を取得できます。
例えばポルトガルの情報を得るURLは以下のようになります。
https://restcountries.com/v3.1/name/portugal

◇ポケモン情報の取得

PokeAPI でポケモン情報を取得できます。
例えばゼニガメの情報を得るURLは以下のようになります。ゼニガメの英語名は squirtle です。
https://pokeapi.co/api/v2/pokemon/squirtle

◇ネコ知識の取得

Cat Facts API はネコに関するトリビアをランダムに取得できるAPIです。
URLは以下のようになります。
https://catfact.ninja/fact

◇天気の取得

気象庁API で天気情報を取得できます。
例えば鹿児島県の天気情報を得るURLは以下のようになります。
https://www.jma.go.jp/bosai/forecast/data/overview_forecast/460100.json


image.png


ネコはともかく、色々な国・ポケモン・天気を試してみると面白いかも?

以上です。

2
1
3

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?