17.주소 설계 규칙

강재영's avatar
Aug 19, 2024
17.주소 설계 규칙
 
💡
RESTful API를 설계할 때 URL(엔드포인트) 구조를 정하는 것은 매우 중요합니다. 좋은 URL 설계는 명확하고 직관적이며, API를 사용하는 사람들이 쉽게 이해할 수 있도록 도와줍니다.
 
(1) /boards?title=제목1
select * from board where title = '제목1';(2) /boards?title=제목1&content=내용1
select * from board where title = '제목1' and content = '내용1';(3) /boards/1
select * from board where id = 1;(4) /boards
select * from board(5) /boards/2/comments
 

RESTful API URL 설계 규칙

  1. 리소스 명칭:
      • 데이터베이스 테이블 이름을 기반으로 리소스를 표현할 때, 일반적으로 복수형을 사용합니다.
      • 예를 들어, board 테이블의 리소스는 boards로 표현합니다.
  1. 리소스의 식별:
      • 각 리소스에 대한 고유 식별자(PK)는 Path Variable로 사용합니다.
      • 예를 들어, 특정 board의 ID가 1인 리소스에 접근하려면 /boards/1과 같이 표현합니다.
  1. 계층적 관계 표현:
      • 리소스 간의 계층적 관계는 URL 경로를 통해 표현합니다.
      • 예를 들어, board와 그 board에 속한 comment의 관계를 표현하려면 /boards/1/comments와 같이 계층 구조로 나타냅니다.
  1. 필터링 및 검색:
      • 리소스 목록을 검색하거나 필터링할 때는 Query String을 사용합니다.
      • 예를 들어, 특정 제목과 내용을 가진 게시글을 검색하려면 /boards?title=제목1&content=내용1와 같이 표현합니다.
 

나의 코드에 적용

@GetMapping("/boards/{id}") public String detail(@PathVariable("id") Integer id, HttpServletRequest request) { Board board = boardRepository.findById(id); request.setAttribute("model", board); return "board/detail"; }
 
id값은 pk값 고유한 식별자 이므로 PathVariable로 받고 board테이블이니 s를 붙였다.
 

정리

예를 들어서 유니크하거나 pk값들은 pathvaiable로 넣고
특정조건이나 필터링하는 값들은 쿼리스트링으로넣고 테이블이름이 board면 s를 붙여서 boards로 만든다.
 
Share article

강재영 블로그