RESTAPIを使用してWebサービスを構築することに興味があります。私はHATEOASについて読んでいますが、多くの例では、人間がWebをサーフィンするときに行うことと比較することで概念を説明しています。これは私に考えさせられます、それが人間と機械の両方で簡単に使用できるような方法でREST APIを構築してみませんか?
たとえば、ウィジェットの内部モデルがあり、このウィジェットには部品番号や価格などのプロパティがあります。マシンがウィジェットのリストを要求すると、JSON表現を返すことができます。
{
widgets: [
{
id: 1,
part_number: "FOO123",
price: 100,
url: "/widget/1"
},
{
id: 2,
part_number: "FOO456",
price: 150,
url: "/widget/2"
},
{
id: 3,
part_number: "FOO789",
price: 200,
url: "/widget/3"
},
...
]
}
人間が自分のWebブラウザーを介して同じリストを要求すると、同じ内部モデルを取得し、それに異なるビューを適用してHTML応答を生成できるはずです。(もちろん、ヘッダーやフッターなどの他のページ要素でHTML応答を装飾します)
これは賢明なデザインですか?なぜまたはなぜそうではないのですか?実際にやっている人気サイトはありますか?
私が目にする最大の欠点は、ユーザーがリソースを削除する明確な方法がないことです。私のユースケースでは、ユーザーがリソースを変更または削除できるようにするつもりはないので、これは大したことではありませんが、一般的にはどのように処理できますか?