Skip to content

ログインユーザーのセッション情報を取得する GET /me エンドポイントの新設 #34

@reiroop

Description

@reiroop

背景と目的

フロントエンドにおいて、現在ログインしているユーザーのセッション情報(メールアドレス、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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions