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 サブ クエリフィルター
リソース
一般的なクエリパラメータ
| パラメータ | 目的 | 例 |
|---|---|---|
page、offset |
ページネーション | ?page=3 |
per_page、limit |
ページサイズ | ?limit=20 |
sort、order |
ソート | ?sort=created_at&order=desc |
filter、status |
フィルタリング | ?status=active |
q、search |
全文検索 | ?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ゲートウェイやロードバランサーでのリクエストルーティング問題のデバッグに役立ちます。