의 우리가이 같은 서버에서 JSON 응답 주어, 일부 자바 스크립트 모델 (예를 들어 backbone.js 모델)을 채우려한다고 가정 해 봅시다 :편안한 응답의 json 데이터에 객체 유형 정보가 있어야합니까?
{
"todo": {
"title": "My todo",
"items": [
{ "body": "first item." },
{ "body": "second item"}
]
}
}
이 데이터의 형식 정보를 포함하지 않는, 그래서 우리는 모른다 "todo"
키가 표시 될 때 모델을 채 웁니다.
물론 json 응답 객체의 키를 클라이언트 측 모델에 연결할 수있는 사용자 정의 표준을 만들 수 있습니다. 예를 들어 :이 개체에 대해 작동하지만이 목록에 올 때
{
"todo": {
"_type": "Todo",
"title": "My todo",
...
}
}
, 그것은 어색 가져옵니다이 사용자 정의 규칙을 만들기 전에
"items": {
"_type": "TodoItem",
"_value": [
{ "body": "first item." },
{ "body": "second item"}
]
}
, 질문은 다음과 같습니다
가 있습니까 응답 데이터에 클라이언트 측 유형 정보를 포함하는 데 필요한 RESTful 가이드 라인이 있습니까?
그렇지 않은 경우 클라이언트 측 유형 정보를 응답 json에 포함시키는 것이 좋습니다.
모델을 채우는 전체 접근 방식 외에 다른 대안은 무엇입니까? 모델 유형이 URL에서 검색 할 수 있지만
편집
, 예를 들어 /todo
및 /user
이 접근 방식의 문제는 N 모델의 초기 인구가 N HTTP 요청을 의미한다는 것이다.
대신 초기 요청은 요청이 하나 인 단일 큰 결합 트리에서 수행 할 수 있습니다. 이 경우 URL의 모델 유형 정보가 손실됩니다.
좋은 점은이 방법의 문제점은 초기 큰 트리 인구입니다. 초기에 채울 수있는 10 가지 모델이있는 경우 10 개의 HTTP 요청을 보내지 않습니다. 각각을 채운다. 또한이 접근 방식을 사용하면 중첩 된 모델이 없음을 의미합니다. 이 방법으로 이러한 문제를 어떻게 처리합니까? – ali
두 번째 방법은 원래 질문으로 돌아 가게합니다. '모델에 의해 모델을 제공'할 때, 어떤 데이터가 어떤 모델과 관련되어 있는지 어떻게 알 수 있습니까? – ali
"트리 응답"은 각 모델에 대한 배열이있는 json obj입니다. 예를 들어, 속성 (각 배열)은 사용자, 게시물, 주석 등입니다. 사용자, 게시, 설명 모델의 컬렉션과 일치합니다. 배열 이름 (사용자)은 배열 요소가 사용자 모델임을 나타냅니다. 이 명명 스타일은 Rails에서 가져온 것으로, 잘 작동합니다. –