【れすとえーぴーあい】

REST API とは?

最終更新:
💡 Webの仕組みに沿った「自然な」API
📌 このページのポイント
クライアント ブラウザ モバイル 他サービス GET POST PUT DELETE REST サーバー /api/users /api/posts /api/comments /api/auth 応答 200 OK 201 Created 404 500 {'{"id": 1, "name": "Ken",'} {' "role": "admin"}'} JSON形式
REST APIの基本構造
ひよこ ひよこ
RESTfulってどういう意味?
ペンギン先生 ペンギン先生
RESTの原則に従って設計されたAPIのこと。①リソースURLで識別(/users/123)、②HTTPメソッドで操作(GET=取得、POST=作成)、③ステートレス(各リクエストが完結)、④統一インターフェース。「完全にRESTful」なAPIは少なくて、ある程度RESTに従っていれば「REST API」と呼ばれるのが実情だよ
ひよこ ひよこ
GraphQLとの違いは?
ペンギン先生 ペンギン先生
REST APIエンドポイントごとにデータ構造が固定。フロントエンドが必要なデータだけ取得するのが難しい(Over-fetching問題)。GraphQLはクライアントが欲しいフィールドを指定してクエリを送る。柔軟だけど学習コストが高い。シンプルなCRUDならREST、複雑なデータ取得が多いならGraphQLが向いているよ
ひよこ ひよこ
REST API設計のベストプラクティスは?
ペンギン先生 ペンギン先生
URLは名詞(/users)で、動詞はHTTPメソッドで表現、②複数形を使う(/users、/articles)、③ネストは2階層まで(/users/123/posts)、④ページネーション(?page=1&limit=20)、⑤バージョニング(/v1/users)、⑥エラーレスポンスにメッセージとエラーコードを含める。OpenAPI/Swaggerで仕様を文書化するのも重要だよ
ひよこ ひよこ
REST APIセキュリティは?
ペンギン先生 ペンギン先生
①認証(OAuth 2.0 / JWT)、②HTTPS必須、③レートリミット(DoS防止)、④入力バリデーションSQLインジェクション防止)、⑤CORS設定(信頼するオリジンのみ許可)。APIキーだけの認証は非推奨OAuth 2.0でアクセストークンを使い、scopeで最小権限を付与するのがモダンなベストプラクティスだよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「REST API」って出てきたら「HTTPメソッドURLリソースを操作するAPI設計スタイル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Representational State Transfer API」 = 表現状態転送API
💬 Roy Fieldingが2000年の博士論文で提唱。Web自体のアーキテクチャスタイルだよ
← 用語集にもどる