私はRESTAPIを設計中であり、可能な限りRESTfulであるようにしています。HATEOASをjsonの応答に組み込みたいと思います。
関連するリソースにURLを追加するのは簡単ですが、それらのリンクに使用する構造についていくつかの議論がありました。
私が見つけた多くの記事は、ATOMフィードから借用した構造を使用しています。
"links": [
{"rel": "self", "href":"http://example.org/entity/1"},
{"rel": "friends", "href":"http://example.org/entity/1/friends"}, ...
]
これはいくつかの質問を提起しました:
なぜ配列をコンテナとして使用するのですか?私が知っているjavascript開発者によると、リンクへのアクセスは、オブジェクトのプロパティとしてのリンクを使用すると簡単になります。例えば:
"self": { "href":"http://example.org/entity/1" }, /* (facebook uses this) */ "friends": { "href":"http://example.org/entity/1/friends", "type": "..."}
リソースプロパティの参照を記述するための一般的なjson構造(アトムを再度適応させる以外)はありますか?(たとえば、メッセージの送信者)。
参照はおそらくURLとして再度解決されるはずですが、単純なIDも含めるのは悪いことでしょうか?のようなもの:
"sender": { "id": 12345, "href": "resource-uri" }
私の考えでは、HATEOASを使用すると、クライアントはAPIを使用するために多くの知識を必要としませんが、その知識を使用する可能性を排除することには消極的です(リンクを作成してプロフィール写真にアクセスするなど)。最初にユーザーを検索せずにクライアント側)。