APIエンドポイントURLの解析と構築

パスパラメータ、クエリフィルター、ページネーション、バージョニング、URL内の認証トークンを含むRESTful APIエンドポイントURLの解析と構築方法を学びます。

Advanced

詳細な説明

APIエンドポイントURLの構造

REST APIエンドポイントは、リソース識別子、アクション、フィルタリング、ページネーションをURL構造に直接エンコードするURL慣例に従います。

REST API URLの構造

https://api.example.com/v2/users/42/posts?status=published&page=3&per_page=20
\____/ \_____________/ \_/ \___/ \_/ \___/ \_____________________________________/
  |          |          |    |    |    |                  |
スキーム  ホスト名     バージョン リソース ID  サブ       クエリフィルター
                              リソース

一般的なクエリパラメータ

パラメータ 目的
pageoffset ページネーション ?page=3
per_pagelimit ページサイズ ?limit=20
sortorder ソート ?sort=created_at&order=desc
filterstatus フィルタリング ?status=active
qsearch 全文検索 ?q=javascript

プログラムでのAPIURL構築

function buildApiUrl(resource, id, params = {}) {
  const base = new URL("https://api.example.com/v2");
  const path = id ? `/${resource}/${id}` : `/${resource}`;
  const url = new URL(path, base);
  Object.entries(params).forEach(([key, value]) => {
    url.searchParams.set(key, String(value));
  });
  return url.toString();
}

URL内の認証

一部のAPIはクエリパラメータとしてトークンを受け入れます(ヘッダーが推奨):

https://api.example.com/data?api_key=abc123

セキュリティ注記: URL内のAPIキーはサーバーログ、ブラウザ履歴、Refererヘッダーに表示されます。代わりにAuthorizationヘッダーを使用してください。

ユースケース

APIエンドポイント構築はRESTクライアント、GraphQLエンドポイント、Webhook連携を構築するフロントエンドおよびバックエンド開発者にとって日常的なタスクです。URL構造の理解は、クリーンなAPI契約の設計、再利用可能なHTTPクライアント関数の構築、APIゲートウェイやロードバランサーでのリクエストルーティング問題のデバッグに役立ちます。

試してみる — URL Parser & Builder

フルツールを開く