HATEOAS(Richardson's Maturity Model level 3を参照)すべてのリンクについてです、これはこのようなものになりますHALブラウザとなるよう:
ルート:
{
"_links": {
"self": {
"href": "/api/root"
},
"api:group-add": {
"href": "http://apiname:port/api/group"
},
"api:group-search": {
"href": "http://apiname:port/api/group?pageNumber={pageNumber}&pageSize={pageSize}&sort={sort}"
},
"api:group-by-id": {
"href": "http://apiname:port/api/group/id" (OR "href": "http://apiname:port/api/group?id={id}")
}
}
}
を追加は、単にそれにPOSTだろう2つのGETメソッドがあります。
ここ
{
"Id" : 1,
"Name" : "test",
"_links": {
"self": {
"href": "/api/group/1" (OR "/api/group?id=1")
},
"edit": {
"href": "http://apiname:port/api/group/1"
},
"api:delete": {
"href": "http://apiname:port/api/group/1"
},
"api:items-query": {
"href": "http://apiname:port/api/bonus?groupId=1"
}
}
}
、編集が簡単にPUTとなり、その後、あなたが見る(RESTのレベル2を削除する必要があります:あなたが特定のグループにドリルダウンしたら、次に
(#1と言います)その同じリンクで)、アイテムに関しては、それらがただのプロパティであるか、別のエンドポイントである場合にはおそらく最もよく分かります。グループを取得している同じ呼び出しで返されるようにそれらを埋め込むことさえできます。
なぜ操作( 'create'、' detail'、 'update'、' delete'、 'search')をURIに入れますか?これはRESTではなくRPCです。 –
グループを作成するには PUT/detail/{groupID} - グループを更新する DELETE/detail/{groupID} - グループを削除する –
はい、それは良いでしょう。 –