HAL + JSONハイパーメディアタイプは、RESTfulサービスを作成する方法で使用できますか?HAL + JSONハイパーメディアタイプはRESTのメディアタイプではありませんか?
私が読んだところでは、RESTful APIのクライアントは、別のリソースを特別なケースで扱う必要はありません。代わりに、どのようなリソースがどのように見えるかを記述するためにメディアタイプを使用する必要があります。
HAL specは、この例を示します。このサンプルHAL + JSONサービングAPIのクライアントとして
GET /orders
{
...
"shippedToday": 20,
...
}
`` `
、私は「順序」は持っていることを知っておく必要があるように見えますshippedToday
の属性これは、クライアントが表現の構文を理解する必要がないという制約に反しているようです。
これはHALの批判ではありません。問題は、RESTfulなAPI設計について私(および他者)の理解を助けることです。
これを数回読んだことがありますが、HAL_linksが提供するものについての私の理解はそれほど深刻ではありません。 "/ orders" URLがHALのエンドポイントのCRUD機能をOrdersでどのように提供しているかを知るために、 "/ docs/rels/orders"にあるドキュメントを読む必要がある_linksプロパティから理解する必要がありますか?私は、URLのようにプロパティのラベルを使用する必要があることは私には直感的ではないようです。 – Adam
@Adamはい、それは実際には少し直感的です。あなたの理解は私が知る限り正しいです。リンク関係タイプをより読みやすくするために、CURIEを使用できます(http://stateless.co/hal_specification.htmlを参照)。 – leifbattermann