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で最小権限を付与するのがモダンなベストプラクティスだよ