2016-11-10 3 views
0

hal/json API를 구현하고 있습니다.hal/json 요소의 링크가 404를 반환 할 수 있습니까?

루트 개체 (군인) 관련 객체 (칼)을 가지고, 그는 /soldier/{object_id}/sword

{ 
    "id": 12345, 
    "name": "Sir SmokeALot", 
    "_links": { 
    "self": { 
     "href": "http://soldier.local:8080/soldier/12345" 
    }, 
    "sword": { 
     "href": "http://soldier.local:8080/soldier/12345/sword" 
    } 
    } 
} 

에서 매핑 아니라 모든 군인 칼을 가지고 있습니다. 가난한 군인이 칼없이 상상해보십시오. 내가 soldier -object를 검색 할 경우

  1. , 링크 /soldier/{object_id}/sword_links -array에 표시해야합니까?

  2. 그렇다면이 링크에서 나는 무엇을 얻을 수 있습니까? 빈 개체 또는 404? hal/json RFC가 _links 배열에서 404로 연결되는 링크를 가질 수 있습니까? 나는이 문제를 해결하는 방법을 요구하지 않는

, 내가 무슨 권리을 알고 싶어요.

답변

0

이상적으로 군인이 검을 갖고 있지 않다면 링크를 게시하지 않아도된다고 생각합니다 (계산하는 데 비용이 많이 들지 않는 경우). HttpStatusCode 404를 반환하면 "빈 객체"(무엇이든간에)와 달리 해석 할 여지가 없습니다. 또한 404로 연결되는 링크와 관련된 문제는 보이지 않지만 제안 된 draft 사양은 다른 방식으로 해석 될 수 있습니다 (RFC 5988도 이에 대한 정보가있는 것으로 보입니다).

RESTful HAL 영역에서 매우 엄격하고 강력하게 시행되는 규칙은 가이드 라인과 같지 않으며, 옳고 그름, 검은 색 또는 흰색, 회색 음영과 같은 경우는 거의 없습니다. 귀하를 위해 일하고 고객을위한 명확한 계약을 체결하십시오.

+0

글쎄, 그 링크를 게시하지 쉽지 않다, 그때 당신은이 개체가 _may_ 존재한다는 것을 알지 못한다. 그리고 당신은 그 링크없이 거기에 뭔가를 저장할 수 없다. Spring Data Rest의 기본 동작은이 상황에서 404 링크를 돌려주는 것으로 보입니다. – cari

관련 문제