コンテンツにスキップ

API 面接で本当に問われていること

原文

Interviewers ask about APIs. They are testing something else entirely.

  1. They ask: what is an API gateway - they want to see: you know it handles auth, rate limiting, and routing so your service does not have to
  2. They ask: difference between 401 and 403 - they want to see: you understand authn vs authz are separate problems
  3. They ask: how does DNS resolve your API domain - they want to see: you can trace a request from browser to server
  4. They ask: what is versioning - they want to see: you know breaking changes in prod cost real money
  5. They ask: what is a token - they want to see: you know where it lives, how it expires, and what happens when it does not

Knowing the term is not the answer. Knowing the failure mode is.

要約

API の面接質問は「用語を知っているか」ではなく「障害モードとトレードオフを理解しているか」を見ている。5つの質問と、面接官が本当に確認したい観点を整理。

回答・解説

問われていることの本質

「用語を知ることが答えではない。障害モードを知ることが答えだ。」

面接の質問 表面的な答え 面接官が見たいこと
API ゲートウェイとは? リクエストを受け付ける単一エントリポイント 認証・レート制限・ルーティングを集約し、各サービスがそれを個別実装しなくて済むことへの理解
401 と 403 の違い 401=未認証、403=認可エラー 認証(authn)と認可(authz)は別問題として設計する必要があるという理解
DNS の名前解決 DNS → A レコード → IP ブラウザからサーバーまでリクエストをトレースできる(DNS → CDN → LB → サービス)
バージョニングとは? /v1/ /v2/ のような URI 管理 本番の破壊的変更はビジネスコストになるというリスク感覚
トークンとは? JWT や API キー トークンがどこに保存され、どう失効し、失効しなかったらどうなるかのセキュリティ理解

各質問の深掘り

1. API ゲートウェイ

  • 集約することで各サービスが認証・レート制限ロジックを重複実装しなくて済む
  • 障害モード:ゲートウェイが SPF(単一障害点)になるリスク。冗長化必須
  • 実例:AWS API Gateway、Kong、nginx

2. 401 vs 403

  • 401 Unauthorized:認証されていない(ログインしていない)
  • 403 Forbidden:認証済みだがアクセス権がない
  • 障害モード:両者を混同すると情報漏洩リスク(403 が返るべき場面で 401 を返すと「このリソースは存在する」ことがわかる)

3. DNS 解決フロー

ブラウザ → キャッシュ確認 → OS リゾルバ → DNS サーバー
→ A レコード取得 → CDN/LB の IP → バックエンドサーバー

4. API バージョニング

  • URI バージョニング/api/v1/ (最も一般的)
  • ヘッダーバージョニングAccept: application/vnd.api+json;version=2
  • 破壊的変更とは:フィールド削除、型変更、必須化

5. トークンの失効

  • JWT:有効期限まで基本的に無効化できない → 短い TTL + ブロックリスト
  • Opaque Token:DB で管理するので即時無効化可能
  • 障害モード:ログアウト後もトークンが有効な状態が続く(→ JWT ログアウト問題)

→ 関連: APIゲートウェイJWT解説認証と認可の違い

リンク