40

HATEOAS をサポートする Spring Data REST を使用しています。私はこのパラダイムに不慣れです。

GETRESTful Web サービスからの応答で、 という名前のノード内で結果を受け取ることがよくあります_embedded

私は疑問に思っています:ノードは何のためですか? _embeddedREST仕様の一部ですか? それともHATEOAS仕様の一部?それとも、それらのSpring実装に固有のものですか?

の JSON 結果の例を次に示しますGET http://localhost:8080/mywebservice/features

{
   "_links":
   {
       "search": { "href": "http://localhost:8080/mywebservice/features/search" }
   },
   "_embedded":
   {
       "features":
       [
           {
               "feature": "GROUND",
               "name": "Terreno",
               "data_type": "String",
               "_links":
               {
                   "self"  : { "href": "http://localhost:8080/mywebservice/features/GROUND" },
                   "values": { "href": "http://localhost:8080/mywebservice/features/GROUND }
               }
           },

           ...

       ]
   }
}

ほとんど_embeddedの場合、応答にノードが含まれていることに気付きました。コレクションを要求した場合でも、検索によって単一のリソースを要求した場合でも (たとえば、 を使用GET http://localhost:8080/mywebservice/persons/search/findByEmail?email=example@example@.com)。

_embeddedリクエストが特定のリソースに対するものである場合にのみ、ノードを取得しません。たとえば、 GET http://localhost:8080/mywebservice/features/GROUND.

4

1 に答える 1

45

REST 仕様も HATEOAS 仕様もありません。どちらもコンセプト、またはアーキテクチャ スタイルにすぎません。_embeddedHAL 形式の一部です。

URI のみが返される場所に (原文のまま!) リソースを埋め込むことを目的としています。たとえば、GET http://localhost:8080/mywebservice/featuresは のような URI のリストのみを返すと想定されてhttp://localhost:8080/mywebservice/features/GROUNDおり、必要に応じてすべてをFeature自分でロードする必要があります。_embeddedすべてのリソースを利用することFeatureで、レスポンスに埋め込まれ、個別にロードする必要がなくなります。

于 2014-12-11T14:06:26.903 に答える