정확히는 물음표 쿼리스트링을 쓰면 요청이 안 감
db.json 파일에
"posts" : [
{ "id" : 1, "item": "바뀌기전"}
]
이렇게 저장되어있고
const data = { item : "바뀐후"}
이걸로 patch 해줄건데
axios.patch(`posts/${id}`, {data})
이렇게하면 patch가 되는데
axios.patch(`posts?id=${id}`, {data})
이렇게 하면 404 에러뜸
근데 또 그냥 axios.get(`posts?id=${id}`) 으로 get요청하면 데이터는 잘옴
저 url을 주소창에 쳐서 들어가보면
전자는
{ "id" : 1, "item": "바뀌기전"}
이렇게 뜨고
후자는
[{ "id" : 1, "item": "바뀌기전"}]
이렇게뜸
아마 대괄호가 뭔가 문제인 거 같은데...
뭐가 문제일까요?¿?
이건 문제가 아니라, 어떤 메소드(post, get 같은거)와 어떤 url로 왔을때 어떤 응답을 보낼지 서버개발자가 정하는거고 클라이언트는 그 인터페이스대로 그대로 요청보내야되는거야. 404가 왔잖아. 저건 잘못된 주소나 메소드로 요청보냈단 뜻임
무슨 api인지는 모르겠지만 문서가 있을거야. 그걸 따라서 보내
json서버로 patch 메소드 보낸 거에요 json 서버 문서 봤는데도 patch 쪽 쿼리스트링 관련 설명은 없더라고요
문서가 제대로 안되어있나보네. 여튼 니가 patch로 보낸 두가지 요청은 백엔드 입장에선 전혀 다른 엔드포인트야. 404뜨는건 백엔드개발자가 그 엔드포인트를 구현안한거지 클라에서 어떻게 할수있는게 아니야
아 그냥 json서버가 patch 요청일 땐 restapi 물음표문법을 지원 안하나 보네요 그럼 이건 내가 어떻게 할 수 있는 문제가 아닌가보네
아니 저게 물음표 문법 그런게 아니라 파라미터라는건데 저런 파라미터를 받았을때의 동작을 백엔드에서 구현해야 저런 요청을 받을수있는거야. 그냥 그걸 구현을 안한거라고.
그러니까요 json서버라는 게 백엔드랑 연결하기 전에 프론트에서 임시로 쓰는 목업서버인데 여기에 저런 식의 패러미터를 받았을 때 동작이 구현이 안돼있나봐요
posts/id 랑 posts?id랑은 다른주소임 posts/id는 라우팅 처리가되어있지만 후자는 서버에서 안해놧으니 404가뜨지