Back

Axiosを使用したGETリクエストの方法:初心者ガイド

Axiosを使用したGETリクエストの方法:初心者ガイド

Webアプリを構築する際、APIからデータを取得することは一般的なタスクです。JavaScriptデベロッパーはしばしば組み込みのfetch()メソッドから始めますが、JSONレスポンスの手動解析や煩雑なエラーハンドリングなどの問題にすぐに直面します。Axiosは自動JSONパース、より良いエラーハンドリング、リクエストのカスタマイズの容易さを提供することで、特にGETリクエストにおいてHTTPリクエストの作成を簡素化します。

重要ポイント

  • AxiosはブラウザとNode.js向けのPromiseベースのHTTPクライアントです。
  • 自動的にJSONパースを処理し、エラーハンドリングを簡素化します。
  • クエリパラメータ、ヘッダーの設定、async/awaitとの併用が容易です。
  • Axiosは複数の同時GETリクエストの管理を簡素化します。

Axiosとは?

Axiosはブラウザおよびnode.jsでHTTPリクエストを行うための人気のあるJavaScriptライブラリです。組み込みのfetch()とは異なり、Axiosは自動的にJSONレスポンスを解析し、HTTPエラーを一貫して扱い、キャンセルやタイムアウトなどの便利なリクエスト機能をサポートしています。

Axiosのインストール

npmやYarnを使用してAxiosをインストールするか、CDN経由で含めることができます:

npm

npm install axios

Yarn

yarn add axios

CDN

<script src=""https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js""></script>

プロジェクトにAxiosをインポートします:

import axios from 'axios';
// または
const axios = require('axios');

基本的なGETリクエストの作成

基本的なGETリクエストを簡単に作成する方法は次のとおりです:

axios.get('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

Axiosはフェッチと自動的なJSONレスポンスの解析を処理します。

レスポンスデータの処理

Axiosでは、追加の解析ステップは必要ありません。返されたレスポンスには、すでにJavaScriptオブジェクト形式のdataプロパティが含まれています:

axios.get('https://jsonplaceholder.typicode.com/todos/1')
  .then(res => {
    console.log(res.data.title);  // レスポンスからタイトルを出力
  });

Axios GETリクエストでのエラーハンドリング

Axiosは直感的にエラーを処理し、HTTPとネットワークの両方の問題をキャッチします。これらのエラーを明確に管理する方法は次のとおりです:

axios.get('https://jsonplaceholder.typicode.com/invalid-url')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      console.error('HTTPエラー:', error.response.status);
    } else if (error.request) {
      console.error('レスポンスなし:', error.request);
    } else {
      console.error('リクエスト設定エラー:', error.message);
    }
  });

Axios GETリクエストでのクエリパラメータの使用

Axiosでクエリパラメータを送信するのは簡単です:

axios.get('https://jsonplaceholder.typicode.com/posts', {
  params: { userId: 1 }
})
.then(response => {
  console.log(response.data);
});

Axiosは自動的にこれらのパラメータをクエリ文字列に変換します。

AxiosでのAsync/Awaitの使用

Async/Await構文を使用すると、Axiosリクエストがより読みやすくなります:

async function fetchPosts() {
  try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/posts');
    console.log(response.data);
  } catch (error) {
    console.error('エラー:', error);
  }
}

fetchPosts();

これによりコードがシンプルで明確になります。

Axios GETリクエストでのヘッダーの設定

ヘッダー(認証トークンなど)を簡単に設定できます:

axios.get('https://api.example.com/data', {
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN'
  }
})
.then(response => {
  console.log(response.data);
});

これにより、カスタムヘッダーを簡単に含めることができます。

Axiosを使用した複数のGETリクエストの作成

同時に複数のリクエストが必要な場合、Axiosはそれを簡素化します:

const request1 = axios.get('https://jsonplaceholder.typicode.com/posts');
const request2 = axios.get('https://jsonplaceholder.typicode.com/users');

axios.all([request1, request2])
  .then(([posts, users]) => {
    console.log('投稿:', posts.data);
    console.log('ユーザー:', users.data);
  })
  .catch(error => {
    console.error('エラー:', error);
  });

Axiosの同時リクエスト処理により、コードの効率が維持されます。

結論

AxiosはJavaScriptでのHTTP GETリクエストを簡素化し、JSONパースや複雑なエラーハンドリングなどの面倒なタスクを排除します。シンプルなリクエスト、クエリパラメータ、カスタムヘッダーの使用、複数の同時リクエストの作成など、Axiosはより明確で保守性の高いコードの作成に役立ちます。

よくある質問

はい、Axiosはブラウザ環境とNode.js環境の両方でシームレスに動作します。

Axiosは自動JSONパース、より良いエラーハンドリング、リクエストキャンセルなどの追加機能を提供しますが、Fetchは最小限の機能を持ち、ブラウザに組み込まれています。

はい、AxiosはPOST、PUT、DELETE、およびすべての標準HTTPメソッドをサポートしています。

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers