본문 바로가기
日常

[항해99 8기 - 15일차] 개인과제 끝!

by stella_gu 2022. 7. 26.

25일에서 26일로 넘어가는 새벽 

 

 

Q. RESTful한 API를 설계했나요? 어떤 부분이 그런가요? 어떤 부분이 그렇지 않나요?

처음엔 id값을 (강의에서 처럼) 프론트에서 지정하는 걸로 설정하여 routes폴더에 posts.js 파일 하나만 생성하였고, post와 comment의 api url을 "/post/:postId/comment/:commentId"처럼 꼬리를 무는 식(?)으로 구현하였었다. 

하지만 실제론 프론트에서 임의로 지정하지 않고 백에서 부여해준다(?)는 강사님의 말이 떠올랐고, mongodb에서 자동으로 부여해주는 id값을 사용하는 것으로 수정을 해보았다. 

댓글 api에 게시글 id값을 파라미터로 가져와 url을 설정하려고 하니 어떤 순서로 해야 좀 더 restful할지 고민이 되었다. 

고민이라고 해봐야 "/comments/:postId"와 "/:postId/comments" 중 뭐가 더 좋을까 였지만 말이다. 

특정 게시글의 댓글이라 후자를 골랐는데, 이젠 또 댓글 수정과 삭제가 고민이 되었다.

"/:postId/comments/:commentId"와 "/comments/:commentId" 중에 또 고민이 되었고, 어차피 특정 게시글의 댓글이니까 postId는 없어도 되지 않을까 싶었고 commentId가 고유한 값이라 게시글을 특정해주지 않아도 될 것 같았다.

restful하게 설계해보려 많은 고민을 하였지만 댓글 부분은 썩 마음에 들지 않는다.

예시 사이트 api명세처럼 댓글 부분의 시작을 "/comments/~"로 통일하는 게 더 restful한 것 같다. 

+ (추가사항: "/comments/~"로 수정 완료)

 

 

 

 

 

과제 제출하는데 구찮게 질문을 네 개나 줬다.

대충 쓰려고 했는데 api 설계하면서 아쉬운 부분이 많았었는지 정신차리니까 저렇게 돼부렀다...

 

배포까지 끝내고 보니 Directory Structure도 다르고, id값이 자꾸 마음에 걸려서 그냥 뜯어 고쳤다!

다행히 입문 주차라 빨리 끝냈는데... 머리가 나빠서 미들웨어 라우터 핸들러 등의 연결고리가 빨리빨리 이어지지 않는다

 

 

 

어쩌겄어 코드 많이 짜봐야지^^!