Skip to content

fix(openapi): OAS 3.1 の nullable 記法を type: [T, 'null'] 形式に移行する #118

Description

@claude

概要

現在の api/openapi.yamlopenapi: 3.1.0 を宣言しているにもかかわらず、nullable フィールドに OAS 3.0 の記法(nullable: true)を使用している。

OAS 3.1 では nullable キーワードは非推奨であり、正式な記法は JSON Schema の typenull を含める方法である。

影響箇所

以下のフィールドが対象:

スキーマ フィールド
UserProfile departmentName
MeResponse activeTenantId
TenantUser departmentName
Task description, assignee, completedAt
TaskCreateRequest description, assigneeId
TaskUpdateRequest description, assigneeId
AuditLog userId, entityType, entityId, ipAddress

修正方針

nullable: truetype: [<元の型>, 'null'] に置き換える。

例:

# Before (OAS 3.0 記法)
activeTenantId: { type: integer, format: int64, nullable: true }

# After (OAS 3.1 記法)
activeTenantId:
  type: [integer, 'null']
  format: int64

$ref を持つフィールド(assignee など)は oneOf を使う形式に変更する:

# Before
assignee: { $ref: "#/components/schemas/UserSummary", nullable: true }

# After
assignee:
  oneOf:
    - $ref: "#/components/schemas/UserSummary"
    - type: 'null'

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions