API Resource を使わずモデルをそのまま返すと、何が起きますか。
DBのスキーマとAPIの仕様が直結します。列名を変えただけでレスポンスが変わり、クライアントが壊れます。内部フラグやハッシュ済みパスワードも、指定を忘れた瞬間に露出します。
面接官が見ているのは分離の理由の補強。
これは「API のレスポンス設計として妥当なのはどれですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- DB のスキーマ変更がそのまま API の仕様変更になり、隠すつもりの列も露出する
その通りです。$hidden の指定を忘れた瞬間に、内部フラグやハッシュ済みパスワードが出ます。 - レスポンスが遅くなる
速度はほぼ変わりません。問題は契約と安全性です。 - JSON に変換できない
変換されます。されるからこそ問題になります。 - リレーションが取得できない
取得できます。むしろ意図せず一緒に出てしまうことが問題です。
面接官は何を見ているか
- DBの列変更がそのままAPI仕様の変更になると言えた
- 出したくない列が露出する危険を挙げた
- クライアント側が壊れる可能性に触れた
模範解答
DBのスキーマとAPIの仕様が直結してしまいます。列名を変えただけでAPIのレスポンスが変わり、クライアント側が壊れます。内部管理用のフラグやハッシュ済みパスワードなど、出すつもりのない列も、$hidden の指定を忘れた瞬間に露出します。Resource を挟むのは、DBの都合とAPIの契約を切り離すためです。