코드컨벤션(규칙)
v2로 진행 (post만 사용)
1. 리소스 명칭 (Resource Naming)
- 규칙: 리소스 이름은 데이터베이스 테이블 이름을 기반으로 하며, 일반적으로 복수형을 사용합니다.
- 사용자:
/users
- 예시:
- 게시글:
/boards
- 댓글:
/comments
2. 리소스의 식별 (Resource Identification)
- 규칙: 각 리소스에 대한 고유 식별자는 URL의 Path Variable로 사용합니다.
- 예시:
- 특정 사용자를 조회:
/users/{userId}
- 특정 게시글을 조회:
/boards/{boardId}
- 특정 댓글을 조회:
/comments/{commentId}
예시2 (값을 수정할때 post)
뒤에 /기능 붙이기
2.1.update 할때 /update
@PostMapping("/api/board/{id}/update")
2.2.delete 할때 /delete
@PostMapping("/api/board/{id}/delete")
2.3.insert 할때 /save
@PostMapping("/api/board/save")
예시2 (값을 참조할때 get) —- 고치자
규칙에 따른 URL 명명 요약
- 폼 페이지 (
form
접미사): - 사용자가 데이터를 입력하거나 수정할 수 있는 폼(양식)을 제공하는 페이지에 사용합니다.
- 예시:
- 저장 폼:
GET /api/board/save-form
- 수정 폼:
GET /api/board/{id}/update-form
- 단순 조회 페이지:
- 사용자가 데이터를 입력하거나 수정하는 것이 아닌, 단순히 정보를 조회하거나 화면을 렌더링하는 경우에는
form
접미사를 붙이지 않습니다. - 예시:
- 게시글 목록 조회:
GET /board
- 게시글 상세 조회:
GET /board/{id}
1.form 접두사
1.1 게시판글을 저장가능한 페이지
@GetMapping("/api/board/save-form")
1.2 글을 저장하려고 버튼을 누를때
@PostMapping("/api/board/save")
2. 단순 조회
2.상세보기(리소스 식별: Path Variable로 표현 (/boards/{boardId}
))
@GetMapping("/board/{id}")
- 저장 폼 제공:
GET /api/board/save-form
- 새 게시글을 작성하기 위한 폼을 제공하는 화면으로 이동합니다. 이 요청은 데이터베이스에 변경을 가하지 않으며, 단순히 폼을 렌더링합니다.
- 수정 폼 제공:
GET /api/board/{id}/update-form
- 기존 게시글을 수정하기 위한 폼을 제공하는 화면으로 이동합니다. 이 요청 역시 데이터베이스에 변경을 가하지 않으며, 수정 폼을 렌더링합니다.
- 조회 페이지 제공:
GET /board/{id}
- 특정 게시글의 상세 정보를 조회하는 페이지로 이동합니다. 이 요청은 단순 조회이며, 데이터베이스 변경이 없습니다.
컨벤션 요약
- 리소스 명칭: 복수형 사용 (
/users
,/movies
)
- 리소스 식별: Path Variable로 표현 (
/movies/{movieId}
)
- 계층적 관계: URL 경로로 표현 (
/movies/{movieId}/comments
)
- 필터링 및 검색: Query String 사용 (
/movies?title=제목
)
- 정렬 및 페이징: Query String 사용 (
/movies?sort=-createdAt&page=2&size=20
)
- 상태 및 액션 표현: 명확한 동사 사용 (
/auth/movies/{movieId}/reservations
)
- 소문자 및 하이픈: URL은 소문자로 작성하고 단어는 하이픈으로 구분 (
/user-profiles
)
- 비동기통신(fetch, AJAX): /api (
api
/movies/now-showing
) : 지금상영중인영화
- 인증 : /auth (
/auth/movies/{movieId}/book
)
- 폼 페이지 (
form
접미사):/users/save-form
- 단순 조회 페이지:
/movie
Share article