Justin-book

API 계약 및 버전 관리 (Backend API Contract & Versioning)

2025-10-27

요약

  • API는 팀 간의 “계약서”이다.
  • 본 문서는 OpenAPI 기반의 스펙 관리, 버전 정책, Mock 협업 구조를 정의한다.
  • 목표: 스펙 일관성, 하위 호환성, 테스트 가능한 계약 체계
항목내용
문서화OpenAPI 기반 자동 문서
버전 관리URL/Header 병행
변경 절차RFC 승인 후 수정
Mock 협업Swagger → Mock 자동 동기화

1. API 문서화 기준

항목도구 / 규칙
문서 포맷OpenAPI 3.0 / Swagger
문서 생성SpringDoc / FastAPI Docs / Nest Swagger
저장 위치/docs/openapi.yaml
Mock 테스트Swagger → JSON Mock 자동 생성
paths:
  /users:
    get:
      summary: "사용자 목록 조회"
      responses:
        '200':
          description: "OK"

2. 버전 관리 정책

정책설명예시
URL 버전URI 내 명시/api/v1/users
Header 버전요청 헤더로 지정X-API-Version: 2
Deprecated구버전은 3개월 유지/api/v1/*/api/v2/*

새 버전 릴리즈 시 반드시 CHANGELOG.md 업데이트.


3. API 변경 프로세스 (RFC 기반)

flowchart LR A[API 변경 요청] --> B[RFC 작성] B --> C[리뷰 및 영향 분석] C --> D[Swagger 수정] D --> E[BE/FE Mock 업데이트]

4. Mock 협업 구조

  • FE는 Swagger → JSON Mock → Mock Server(MSW/json-server)
  • BE는 Stub Controller 기반 Mock 응답 제공
  • 변경 시 FE/BE 모두 동일 스키마 기준으로 테스트