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

More than 1 year has passed since last update.

p5.js Web Editor上で axios を使った HTTPリクエスト(JSONPlaceholder から GET で情報取得)

Last updated at Posted at 2021-11-14

使い道があるかは分からないですが、axios を使った p5.js Web Editor からの HTTPリクエスト(GET)を行う話です。

リクエストを送る先には JSONPlaceholder を用います。
JSONPlaceholder.jpg

p5.js Web Editor上で axios を使う

ライブラリの読み込み

axios の公式ドキュメントのイントロのページに書かれている CDN上のライブラリを、p5.js Web Editor の index.html で読み込みます。
CDN.jpg

どちらでも OK です。

リクエスト先の URL

冒頭で書いたとおり、JSONPlaceholder に対して HTTPリクエストを送って、適当な情報を取得する形にします。
JSONPlaceholder のガイドの最初のほうに書いてある、以下の URL を使うことにします。
https://jsonplaceholder.typicode.com/posts/1

ちなみに、ブラウザでアクセスすると、以下の JSON が得られるのが確認できます。

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

axios による GETリクエストの処理

axios の公式ページの Example に書かれた、以下の部分の処理を用います。
await.jpg

JavaScriptのプログラムを書く

あとは、p5.js Web Editor上の sketch.js を編集します。
キーを押したら HTTPリクエストを実行する、という形にしてみました。

const url = "https://jsonplaceholder.typicode.com/posts/1";

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
}

async function keyPressed() {
  if (key === "g") {
    try {
      const response = await axios.get(url);
      console.log(response);
    } catch (error) {
      console.error(error);
    }
  }
}

await を使っているので、それが含まれる keyPressed() の部分は async function にしてください。

プログラムを実行し、gキーを押すと、以下の結果を得られます。
得られた結果.jpg

無事に JSON を取得できました。

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