Skip to content

[공통] 팀원 모집 Java Swagger와 공개 API 명세 불일치 #2378

Description

@taejinn

🔍 개요

  • 상위 기능 이슈: [공통] 팀원 모집 기능 구현 #2335
  • 기준 source: origin/develop@97c3af7f3e211c0bb469272178489f434269bfc4
  • 공개 명세 확인일: 2026-08-31
  • 심각도: P1 계약 / runtime 자체는 P2
  • 분류: 클라이언트 공개 계약 + 서버 Swagger annotation

현재 Java source에는 팀원 모집 operation 23개가 있지만 공개 team-recruitment-api.peridot-ocean.workers.dev/openapi.json에는 22개만 있으며 알림 단건 DELETE가 빠져 있습니다. DTO nullability, timestamp, 필드 우선순위 설명도 runtime과 완전히 정렬되어 있지 않습니다.

🧪 관찰 결과

  • 공개 전체 operation: 26개
  • 공개 팀원 모집 operation: 22개
  • DELETE /team-recruitments/notifications/{notificationId}: 없음
  • 현재 Java source의 팀 신규 operation: 23개

기대 동작 / 현재 동작

  • 기대: Java에서 생성한 OpenAPI와 공개 계약의 team path/method/status/schema가 같습니다.
  • 현재: 클라이언트가 보는 공개 문서와 서버 source가 서로 다른 API를 설명합니다.

📱 클라이언트 영향

클라이언트가 삭제 API를 발견하지 못하거나 nullable 필드를 non-null로 생성할 수 있습니다. TEAM counterpart, GENERAL role, notification optional ID, d_day, timestamp 형식을 정확히 표현해야 합니다.

📦 작업 순서

  1. 관련 runtime 정책 이슈와 전역 OpenAPI customizer를 먼저 확정합니다.
  2. Java controller/DTO annotation을 canonical source로 정리합니다.
  3. source-generated 결과와 공개 artifact의 구조 diff를 검증합니다.

✅ 완료 조건

  • 팀 신규 23개 + 기존 참고 API 4개 = 27개 operation이 의도대로 설명됩니다.
  • 알림 단건 DELETE가 포함됩니다.
  • nullable/required/time format과 실제 JSON이 일치합니다.
  • apply_block_reason 우선순위가 실제 source와 일치합니다.
  • 모든 $ref와 operationId, response key, 204 body 검사가 통과합니다.

🚫 범위 밖

  • Cloudflare 배포는 별도 영향·rollback 설명과 명시적 승인 후 수행합니다.
  • 아직 결정되지 않은 runtime 동작을 문서가 먼저 확정하지 않습니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    공통백엔드 공통으로 작업할 이슈입니다.문서문서화와 관련된 이슈입니다.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions