문제 관찰 결과 -
POST /posts/1/comments
요청을 보내면 새로 생성되는 댓글 객체의postId
속성에 문자열 '1'이 저장됩니다. (원래는 숫자 1이 저장되어야 함. 이는 json-server의 버그)- 이렇게 관계를 나타내는 속성에 문자열이 저장되어 있을 경우,
_embed
가 제대로 동작하지 않는 것으로 보입니다. _embed
를 쓰지 않고도 요청을 한 번 더 보내서, 필요한 데이터를 가져올 수는 있습니다. 하지만 부가적인 요청을 보내야 하므로 페이지 로딩 속도가 느려집니다.
postId
속성에 문자열이 저장되는 버그를 회피하기 위해서, 댓글 생성 시 아래 코드를
await api.post(`/posts/${postId}/comments`, {
body: '...'
})
아래와 같이 고쳐 쓰세요. (postId 직접 넣어주기)
await api.post(`/comments`, {
body: '...'
postId: postId
})
다른 경우에도, 관계 설정을 해줄 때 중첩된 경로로 POST 요청을 보내지 마세요. 대신 관계를 나타내는 속성을 직접 저장해주세요. 이렇게 하면 xxxxId
에 숫자가 잘 저장되고, _embed
쿼리 스트링의 기능이 문제없이 동작합니다.
실제로 게시판 코드를 어떻게 수정하면 되는지 알고 싶으시다면 이 링크를 참고하세요
seungha-kim/fds-bbs-practice@4f4f5e3