mcpField
A
axios

axios

github.com/claude-dev-suite開発4679 回インストール2 日前に更新
リポジトリ

axios について

JavaScript と TypeScript アプリで Axios を使うためのクイックリファレンススキルです。基本的なリクエスト、インターセプター、型付きレスポンス、エラー処理を扱います。

主な機能

  1. 01GET・POST リクエスト例
  2. 02Axios インスタンスの設定
  3. 03リクエスト・レスポンスインターセプター
  4. 04TypeScript のレスポンス型
  5. 05エラー処理とトラブルシューティング

活用シーン

  1. 01JavaScript または TypeScript での API 呼び出し
  2. 02認証・エラー処理用インターセプターの追加
  3. 03特定の API 向けクライアントの設定
  4. 04ファイルのアップロードやダウンロード

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill axios

インストール後、Claude Code で/axiosを入力して読み込まれたか確認します。

詳細

Axios - クイックリファレンス

このスキルを使用する場面

  • JavaScript/TypeScript アプリケーションでの HTTP リクエスト
  • 認証/エラー処理のインターセプターの設定
  • 特定の API 用の Axios インスタンスの作成
  • リクエスト/レスポンスの変換
  • ファイルのアップロードとダウンロード

詳細情報:包括的なドキュメントを参照するには、technology: axios を指定して mcp__documentation__fetch_docs を使用してください。

セットアップの基本

npm install axios

基本パターン

GET リクエスト
import axios from 'axios';

const response = await axios.get('/api/users');
const users = response.data;

// With params
const response = await axios.get('/api/users', {
  params: { page: 1, limit: 10 }
});
POST リクエスト
const response = await axios.post('/api/users', {
  name: 'John',
  email: '[email protected]'
});
Axios インスタンス
const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000,
  headers: { 'Content-Type': 'application/json' }
});

// Use instance
const users = await api.get('/users');
インターセプター
// Request interceptor (add auth token)
api.interceptors.request.use(
  (config) => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => Promise.reject(error)
);

// Response interceptor (handle errors)
api.interceptors.response.use(
  (response) => response,
  (error) => {
    if (error.response?.status === 401) {
      // Handle unauthorized
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);
TypeScript の型
interface User {
  id: number;
  name: string;
  email: string;
}

const response = await api.get<User[]>('/users');
const users: User[] = response.data;
エラー処理
try {
  const response = await api.get('/users');
} catch (error) {
  if (axios.isAxiosError(error)) {
    console.error('API Error:', error.response?.data);
    console.error('Status:', error.response?.status);
  }
}

このスキルを使用しない場面

  • ネイティブ Fetch API のパターン(http-clients スキルを使用してください)
  • ky または ofetch の設定(http-clients スキルを使用してください)
  • GraphQL クライアントのセットアップ(graphql-codegen スキルを使用してください)
  • tRPC クライアントの設定(trpc スキルを使用してください)
  • WebSocket 接続

アンチパターン

アンチパターン問題点解決策
タイムアウトが設定されていないリクエストが無期限に停止しますaxios.create() でタイムアウトを設定します
ベース URL のハードコード環境への依存が生じますbaseURL には環境変数を使用します
エラーインターセプターがないエラー処理が一貫しませんレスポンスエラーインターセプターを追加します
レスポンスに型を指定していない型安全性が失われますジェネリクスを使用します:axios.get<User>()
認証ロジックの重複保守の負担になりますリクエストインターセプターを使用します
レスポンスのステータスを無視する気づかないまま失敗しますresponse.status を確認するか、validateStatus を使用します
リクエストのキャンセル機能がないアンマウント時にメモリリークが発生しますAbortController を使用します
機密データをログに記録するセキュリティ上のリスクがありますログからトークンやパスワードを除外します

トラブルシューティングのクイックガイド

問題考えられる原因解決策
CORS エラーサーバーがオリジンを許可していませんサーバーで CORS を設定し、プリフライトを確認します
401 Unauthorizedトークンがない、または無効ですインターセプターを確認し、トークンを検証します
Network Errorサーバーに到達できない、または CORS の問題ですbaseURL、サーバーの状態、CORS の設定を確認します
タイムアウトエラーリクエストに時間がかかりすぎていますタイムアウトを延長するか、エンドポイントを最適化します
リクエストがキャンセルされたAbortController が実行されましたコンポーネントのライフサイクルを確認し、必要なリクエストをキャンセルしないようにします
型エラーレスポンスの形状が一致しませんAPI のレスポンスが型定義と一致していることを確認します
インターセプターが実行されないリクエスト後にインターセプターが追加されましたクライアントのセットアップ時にインターセプターを追加します
メモリリークアンマウント時にリクエストをキャンセルしていませんuseEffect のクリーンアップを使用します

コメント