2016-06-13 6 views
0

REST 원칙 (HATEOAS) 및 HAL (specification,Internet-draft)을 준수하려면 링크 집합에 대한 응답이 어떻게되어야합니까?HAL - 링크 만있는 RESTful 응답

JSON 본문의 첫 번째 레벨에는 특성이없고 selflink가있는 _links 섹션과 해당 요청에 대한 링크가있는 _embedded 섹션 만 있으면됩니까?

UPDATE : 예

요청에 :http://localhost:5555/myservice/titles/meow/kittens

결과 :

{ 
    "_links": { 
    "next": { 
     "href": "/myservice/titles/meow/kittens?page=2" 
    }, 
    "self": { 
     "href": "/myservice/titles/meow/kittens" 
    }, 
    "anchestor": { 
     "href": "/myservice/titles/meow" 
    } 
    }, 
    "_embedded": { 
    "linksINeed": [ 
     { 
     "title": "kitten play", 
     "_links": { 
      "self": { 
      "href": "/myservice/titles/kitten-play" 
      } 
     } 
     }, 
     ... 
     { 
     "title": "kitten eat", 
     "_links": { 
      "self": { 
      "href": "/myservice/titles/kitten-eat" 
      } 
     } 
     } 
    ] 
    } 
} 

이 유효 REST FUL HAL JSON인가? 감사합니다.

+1

네, 다음 링크와 자체 링크가 링크 관계 유형 레지스트리와 일치해야합니다. https://tools.ietf.org/html/rfc5988#section-6.2.2 – VoiceOfUnreason

답변

-1

속성이 0 인 리소스를 반환 할 때와 같이 빈 JSON 본문이 있습니까? 당신은 그 자원없이 모두 할 수있는 것처럼 들립니다. 해당 리소스를 고유하게 식별 할 수있는 속성이없는 경우 자체 링크에 포함되는 내용은 무엇입니까? 속성이 있지만 인스턴스화하지는 않더라도 작동하지 않습니다.

루트라면 적어도 VersionNumber 속성이있는 ApiVersion 리소스를 가질 수 있습니다.

그렇지 않으면 리소스를 삭제하고 다른 하나 (이전 부모?)에 대한 링크를 계속 제공하는 것과 같은 좀 더 이국적인 시나리오에서도 가능할 수 있다고 생각합니다. 물론 HttpStatusCode 204 No Content 만 있으면 충분할 것입니다.

+0

나는 의미를 분명히하기 위해 예제를 추가했습니다. 감사 –