【れすとえーぴーあい】

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自体のアーキテクチャスタイルだよ
← 用語集にもどる