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.

Axiosとは

Last updated at Posted at 2023-04-15

axiosとは?

ブラウザやNode.jsで動くPromiseベースのHTTPクライアントです。 HTTPリクエストを簡単に行うことができます。

※ HTTPクライアントは、HTTPリクエストを送信して、HTTPレスポンスを受信するクライアント側のコードのことです。JavaScriptを使用してHTTPクライアントを実装するには、XMLHttpRequestを使用します

サーバー側ではNode.jsのHTTPモジュールを使用し、クライアント側ではXMLHttpRequestを使用することで、ウェブアプリを開発できます。XMLHttpRequestを使用することで、非同期通信が可能になり、ユーザーがページを更新することなくデータを取得することができます。Node.jsのhttpモジュールを使用することで、サーバー側でのリクエスト処理が可能になる仕組みです。

Node.jsには、HTTP通信を扱うためのHTTPモジュールが用意されています。このモジュールを使用することで、HTTPサーバーの作成や、HTTPクライアントの作成などが可能になります。

axiosのユースケース

外部APIからデータを取得する場合などに使用されます。例えば、REST-APIの実行など、これを使うと簡単に実装できます。

axiosの特徴

Axiosは、多数のオプションを提供し、ヘッダーのカスタマイズ、クッキーの処理、リダイレクトのハンドリングなどが可能です。AxiosはPromiseを返すため、非同期処理を簡単に行えます。大量のリクエストを行う場合は、Axiosのパフォーマンスに注意です。

処理の流れ

まず、ライブラリをインポートします。

$ npm i axios

1: axiosのインスタンスを作成する

js
const axiosInstance = axios.create({
  baseURL: 'https://example.com/api/',
  timeout: 1000,
  headers: {
    'X-Custom-Header': 'foobar',
  },
});

axiosのcreate()メソッドを使用して、axiosのインスタンスを作成します。baseURLプロパティには、リクエスト先のベースとなるURLを指定できます。timeoutプロパティは、リクエストがタイムアウトするまでの時間を指定。headersプロパティは、リクエストに含めるヘッダーを指定できます。

2: HTTPリクエストを送信する

js
axiosInstance.get('/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

get()メソッドを使用して、GETリクエストを送信しています。レスポンスが正常に受信できた場合、then()メソッドのコールバック関数が実行され、レスポンスのデータが引数として渡されます。エラー時は、catch()メソッドのコールバック関数が実行され、エラーオブジェクトが引数として渡されます。

3: HTTPリクエストのキャンセル

js
const source = axios.CancelToken.source();
axiosInstance.get('/users', {
  cancelToken: source.token,
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (axios.isCancel(error)) {
      console.log('Request canceled', error.message);
    } else {
      console.error(error);
    }
  });

// キャンセルする
source.cancel('Operation canceled by the user.');

キャンセルトークンを作成して、HTTPリクエストのcancelTokenオプションに指定しています。キャンセルが必要な場合は、キャンセルトークンのcancel()メソッドを呼び出すことで、HTTPリクエストをキャンセルできます。キャンセルが発生した場合は、catch()メソッドのコールバック関数内で、axios.isCancel()メソッドを使用して、キャンセルかどうかを判定できます。

キャンセルトークンは、非同期処理をキャンセルするためのトークン。キャンセルトークンを使用すると非同期リクエストをキャンセルできます。「ページ遷移のキャンセル」「非同期処理のタイムアウト」などに活用します。

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?