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?それも404につながる_links -array内のリンクを持っているHAL/JSONのRFCによって許可されていますか?

私は私がいただきました!右を知ってほしい、この問題を解決する方法を求めていません。

答えて

0

理想的には、兵士が刀を持っていなければ(たとえそれが計算に費用がかからない場合)、リンクを公開しなくてもいいと思います。 HttpStatusCode 404を返すことは、「空のオブジェクト」(それがどんなものであろうと)と違って、私の意見では解釈の余地がありません。私はまた、404につながるリンクですべての問題が表示されませんが、提案draft仕様は、(RFC 5988もこの上の情報を持っているようだ)そう解釈される可能性があります。

RESTful HALの領域では、非常に厳しく厳しく執行されるルールは見つからないと思いますが、ガイドラインのように、灰色の色合いのように、あなたのために働き、あなたのクライアントのための明確な契約を確立します。

+0

まあ、リンクを公開しない方が簡単ではないので、このオブジェクトが存在することはわかりません。そのリンクがなければ何かを保存することはできません。 Spring Data Restのデフォルトの動作は、この状況で404リンクを返すようです。 – cari

関連する問題