REST API 리팩터링 정리

1. REST API 핵심 원칙 (먼저)

이 문서는 “현재 올바른 REST 형식으로 맞추는 기준”을 먼저 정리하고, 아래에 실제 프로젝트 적용 내역을 기록한다.

  1. URI에는 동사 대신 리소스 명사를 사용한다.
  2. 목록/생성 엔드포인트는 복수형 컬렉션 경로를 사용한다.
  3. 자식 리소스는 중첩 경로로 표현한다.
  4. 행위는 URI가 아니라 HTTP Method(GET/POST/PUT/DELETE) 로 표현한다.
  5. 생성 성공 시 가능하면 201 Created + Location 헤더를 반환한다.
  6. 인증/토큰 관련 경로도 의미가 드러나는 리소스 기반 이름으로 맞춘다.
  7. 라우트 변경 시 컨트롤러만이 아니라 보안 매처, 프론트 호출 경로, 테스트 코드까지 함께 정렬한다.

2. 왜 변경했는가

기존 구현은 CRUD 동작 자체는 안정적이었지만, 일부 경로가 액션형(upload, detail, reissue)이거나 리소스 명이 섞여 있었다(community vs rooms). 그래서 위 원칙에 맞춰 URI를 일관되게 통일했다.

3. 우리 프로젝트 적용 내역 (Old -> New)

Community

Comment

File

User/Auth

Chat Room API / Page Route

4. 적용 범위

5. 추가 정렬 사항

위 생성 API들은 가능한 경우 201 CreatedLocation 헤더를 반환하도록 정렬했다.