背景と目的
フロントエンドにおいて、現在ログインしているユーザーのセッション情報(メールアドレス、traQ ID、管理権限、および Stripe 顧客ID)を識別・取得できるようにするため、新たに GET /me エンドポイントを新設します。
API仕様設計
1. エンドポイント定義
- パス:
GET /me
- 認証制限 (
security): [] (認証不要 / パブリック)
- 設計意図:
ログインしていない状態(セッションCookieやプロキシヘッダーが一切存在しない状態)での呼び出しも、アプリケーションのライフサイクルにおける「正常な状態(ゲスト状態)」として扱います。
そのため、未ログイン時であっても例外エラー(401)は返さず、200 OK で各フィールドが null または false のオブジェクトを返します。
2. レスポンススキーマ (MeResponse)
Goのコード自動生成ツール(oapi-codegen)でのマッピング性能とシンプルさを最優先し、フラットな構造を採用します。
components:
schemas:
MeResponse:
type: object
properties:
email:
type: string
format: email
nullable: true
description: メールアドレス認証が完了しているセッションの場合にメールアドレスが入る。それ以外は null。
traq_id:
type: string
nullable: true
description: NeoShowcaseプロキシ認証を経由しているセッションの場合に traQ ID が入る。それ以外は null。
is_admin:
type: boolean
description: 現在のユーザーがシステム管理者権限を持っている場合のみ true。それ以外は false。
customer_id:
type: string
nullable: true
description: 現在のセッションのユーザーがすでに Stripe Customer として登録されている場合に顧客IDが入る。未登録の場合は null。
required:
- email
- traq_id
- is_admin
- customer_id
背景と目的
フロントエンドにおいて、現在ログインしているユーザーのセッション情報(メールアドレス、traQ ID、管理権限、および Stripe 顧客ID)を識別・取得できるようにするため、新たに
GET /meエンドポイントを新設します。API仕様設計
1. エンドポイント定義
GET /mesecurity):[](認証不要 / パブリック)ログインしていない状態(セッションCookieやプロキシヘッダーが一切存在しない状態)での呼び出しも、アプリケーションのライフサイクルにおける「正常な状態(ゲスト状態)」として扱います。
そのため、未ログイン時であっても例外エラー(
401)は返さず、200 OKで各フィールドがnullまたはfalseのオブジェクトを返します。2. レスポンススキーマ (
MeResponse)Goのコード自動生成ツール(
oapi-codegen)でのマッピング性能とシンプルさを最優先し、フラットな構造を採用します。