-
[WEB] REST API 설계하기TIL 2024. 2. 24. 01:28
rest api를 만드는데에 정답은 없다. 하지만 더 직관적이게 짤수록 좋다.
남들이 봤을때 바로바로 이해될 수 있어야한다.
rest ful한 api를 만드는 방법)
1. URI는 정보의 자원을 표현해야한다
GET /:accountidx/info (X)
ㄴ 남들이 볼때 - /5/info
ㄴ 이것만 보고는 남들이 보고 직관적으로 이해하기 어렵다
GET /account/:idx/info (O)
ㄴ 남들이 볼때 - /account/5/info
ㄴ남들이 볼때 5번계정의 info를 요청 하는것이라고 직관적으로 이해할 수 있다
2. 동사를 쓰지않고 명사만 쓴다
GET /account/idCheck (x)
ㄴ 동사는 Method(get, put, post, delete)로만 이용한다. 그외 URI내에 동사를 쓰지않는다
Post /account/id/Check (O)
ㄴ post 마지막에 들어오는 동사정도만 허용한다
3. GET 방식에는 body가 없다
4. /는 계층을 구분하는데에 쓴다
동일 계층이면 해당 리소스를 지우고 쓰면 되지만, 하위계층에 해당하는 리소스라면, 해당리소스 뒤에 /(슬래쉬)로 이어서 표현한다
예시) - 해당 게시글의 댓글 불러오기
GET /comment/:articleidx (X)
ㄴ댓글은 게시글 하위계층에 속하는데 post계층이 표현되지 않았고, 남들이 보기에 /comment/4 와 같은 방식으로 보여지기에, 4번째 댓글을 가져오라는 것처럼 보여서 부자연스럽
GET /post/:postidx/comment/all (O)
ㄴ댓글은 게시글의 하위계층에 존재하는 것이므로 자연스럽다
5.언더바(_)대신 하이픈(-)사용하기
6.URI마지막에 슬래쉬(/) 쓰지않기
7.URI에는 소문자만 쓰기
8.파일 확장자는 URI에 포함시키지않기
9. method get에는 req.body가 없다
컬렉션과 도큐먼트를 이용하기)
Document는 문서, 객체로 표현된다. 단수형로 사용한다
Collection은 문서의 집합, 객체의 집합으로 표현된다. 복수형으로 사용한다
/naver.com/sports/soccer/players/13
ㄴ컬렉션인 sports, players는 복수형으로 쓰였다
ㄴ도큐먼트인 soccer, 13은 단수형으로 쓰였다
ㄴ축구선수 13번을 의미한다
참고)
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-REST-API-%EC%A0%95%EB%A6%AC
'TIL' 카테고리의 다른 글
[aws] 프라이빗IP, NAT , CIDR (0) 2024.02.29 [DB] DB 모델링 - 소셜 로그인기능 (0) 2024.02.25 [postgresSQL] enum 타입 (0) 2024.02.19 [DB] 식별관계와 비식별관계 (0) 2024.02.19 [DB] 트랜잭션 (Transaction) (0) 2024.02.19