URI를

2013-10-24 2 views
0

뿐 아니라 JSON을 완료하기 위해 객체를 직렬화하면 단일 호출로 나머지 원칙을 위반하지 않고 리소스의 모든 인스턴스를 열거 할 수 있습니다.URI를

말 하나의 전화를 사용하여 모든 학생 정보를 열거하고 싶습니다. 이것은 HTTP 원칙을 위반하지 않을

GET /student 

"students": [{  
    "name":"x",  
    "moreInfo":..., 
    "uri":"/student/1" 
}, 
{  
    "name":"y", 
    "moreInfo":..., 
    "uri":"/student/2" 
}, ] 
+0

코드를 입력하십시오. 학생이 JSON에 매핑되는 방법을 보여주는 것이 특히 유용 할 것입니다. 'uri' 속성 만 직렬화 된 것처럼 보입니다. –

+0

이 질문을하지는 않았지만 사용중인 사용자 지정 미디어 유형 대신 [HAL] (http://stateless.co/hal_specification.html)을 고려 했습니까? 그것은 당신에게 당신의 객체 구조로부터 분리 된 링크뿐만 아니라 객체를 임베딩하는 옵션을 제공하는 아주 좋은 방법을 제공합니다. –

답변

2

:

"students": [{ 
    "uri":"/student/1" 
}, 
{ 
    "uri":"/student/2" 

}, 
] 

내가 원하는 것은 모든 데이터를 얻을 수있는 단일 통화를 사용하는 것입니다 : REST 원칙이 호출이 반환와

GET /students 

. 좋은 생각인지 아닌지에 관계없이 자원 계층 구조에 대한 질문입니다. 이러한 설정에는 모든 학생의 데이터를 보유하는 students 리소스가 있습니다. 개별 학생 기록 (예 : GET /students/:id)이 필요하지 않습니다. 클라이언트가 엄청난 양의 데이터를 반환하고 클라이언트로 데이터 처리를 추진한다면 클라이언트는 짜증을 느낄 수 있습니다. 고객이 한 학생 만 원한다고 가정 해보십시오. 모든 관련없는 데이터를 무시하고 전체 학생 인구를 분석하여 원하는 한 학생에게 전달해야합니다. 물론 클라이언트가 모든 학생 데이터를 필요로한다면 이것은 문제가되지 않습니다.

정말 문제는 이것이 얼마나 RESTful이 아닌지, 왜 당신이 그것을하고 싶은지, 그것이 시스템의 클라이언트에게 올바른지 여부입니다. 클라이언트는 어떤 계층 구조를 기대합니다. 이것에 꼭 맞는다면 꼭 읽어주세요.