2013-11-26 1 views
1

오브젝트에 JSON 인코딩을 사용하는 RESTful 서버 백엔드가 제공됩니다. GET 요청은 { id: 42, name: 'Peter', age: 28 }과 같은 개체를 반환합니다. 이제 새 객체를 삽입하는 POST 요청이 동일한 객체의 전체 객체를 반환하는지 또는 만든 ID를 반환해야하는지 궁금합니다.REST 서버가 POST에서 전체 개체 또는 ID 만 보내야합니까?

예를 들어 클라이언트는이 요청을 보내 데이터베이스에 새 항목을 만듭니다.

method: POST 
url:  http://example.com/persons 
type: application/json 
content: { name: 'Max', age: 35 } 

서버는 { id: 43, name: 'Max', age: 35 } 또는 단지 43 또는 { id: 43 } 같이 생성 된 ID로 응답해야 하는가?

이 최소한의 예제에서 대역폭은별로 중요하지 않지만 실제로는 관련된 지리적 영역을 인코딩하는 속성이 더 길다는 것을 알았습니다.

+0

데이터로 무엇을하고 싶은가요? 게다가, 서버를 변경 한 모든 필드에 대해서만 되돌릴 수 있습니다. 클라이언트는 다른 것을 압니다. –

+0

@ChristopherCreutzig 이것에 대한 지침은 없습니까? 아니, 귀하의 의견을 바탕으로 답변을 쓸 수 있고 나는 그것이 인정으로 표시됩니다. – danijar

+0

그것은 클라이언트가 필요로하는 것에 달려 있습니다. 나는 이것에 크리스토퍼와 함께있다. 데이터가 서버에 의해 변경되고 이러한 변경 사항이 클라이언트에게 전달되어야하는 경우 지침을 반환하는 것이 좋습니다. –

답변

1

내가 어떤 지침을 인식하지 오전해야 일에 대해 더 단단하고 빠른 규칙이 존재하지 않는 건축 디자인입니다. 개인적으로는 클라이언트가 알 수없는 데이터를 반환하는 것이 유용 할 수 있다고 생각합니다. 물론 새로운 ID가 있지만 서버는 표준화되었거나 다른 데이터도 변경되었을 수 있습니다.

하지만 결국 클라이언트가 데이터로 수행하고자하는 작업에 따라 달라집니다. 전혀 반환하지 않으면 숫자 ID 나 그와 비슷한 형식이 아닌 추가 확장을 위해 열려있는 형식을 사용합니다.

0

작성 작업은 URI가 호출자에게 이상적으로 반환되어야하므로 식별자가 무엇이든간에 최선의 결과를 반환한다고 말합니다.

관련 문제