그래서 여기에 새로운 것은 없습니다. 나는 약간의 설명을 얻으려고 노력하고 있으며 다른 게시물에서 찾을 수없는 것 같습니다.
다음과 같이 새 리소스를 안정적으로 만들고 있습니다.
/books (POST)
시체와 함께 :
{
title: 'The Lion, the Witch and the Wardrobe',
author: 'C. S. Lewis'
}
새 리소스의 Location 헤더와 함께 201 (Created)을 반환해야한다는 것을 알고 있습니다.
Location: /books/12345
내가 스스로 대답 할 수없는 질문은 서버가 몸에 돌아와야하는 것입니다.
나는 종종 이러한 유형의 응답을 수행했습니다.
{
id: 12345,
title: 'The Lion, the Witch and the Wardrobe',
author: 'C. S. Lewis'
}
나는 몇 가지 이유로 이것을했다 :
- angularjs와 같은 프론트 엔드 프레임 워크 용 API를 작성했습니다. 내 특별한 경우에는 앵귤러 리소스를 사용하고 있으며 리소스를 찾으려면 ID 만 필요합니다. 응답 본문에 ID를 반환하지 않으면 Location 헤더에서 ID를 구문 분석해야합니다.
- 모든 책의 GET에서 나는 보통 id뿐만 아니라 전체 객체를 반환합니다. 이런 의미에서 내 클라이언트 코드는 ID를 가져올 위치 (위치 헤더 또는 본문)를 구별하지 않아도됩니다.
이제는 내가 실제로 회색 영역에 있다는 것을 알고 있지만 대부분의 사람들은 전체 리소스를 반환하는 것이 '나쁜'습관이라고 말합니다. 그러나 서버가 리소스에 정보를 변경 / 추가하면 어떻게 될까요? 그것은 분명히 ID를 추가하지만 타임 스탬프와 같은 다른 것을 추가 할 수도 있습니다. 전체 리소스를 반환하지 않으면 POST를 수행하고 ID를 반환 한 다음 클라이언트가 GET을 수행하여 새 리소스를 얻는 것이 좋습니다.