各状態がハイパーリンクする必要があるというHATEOASの原則に従って、リソース状態を変更するリンクをモデル化する最良の方法は何ですか?HATEOAS - 状態を変更するリンク関係をモデル化する方法
のは、注文して古典的な例を見てみましょう:
{
id : 12,
state: 'pending',
...,
links: [
...,
{
rel: 'cancel',
href: '/orders/12/cancel'
},
...
]
}
私はそのとtotall満足していない一部を「/キャンセル」 - 私が「PUT」リクエストを送信することができれば、私はかなり良く感じるだろう内容:
{
status:'cancelled'
}
しかし、リンクセクションの「href」属性を使ってどのように表現すればよいですか?私はそこで利用可能な行動を表現したいと思います。例えば、注文をキャンセルすることは必ずしも可能ではありません( '完了'状態)。
「/ orders/12?action = cancel」のようなURLをRPCアプローチのように感じることがあり、何か不足している可能性があります。
おそらく素敵に見える別の可能性、そのようなリンクを持っているだろう:
{
rel: 'cancel',
href: '/orders/12/',
type: 'PUT',
values: {
state: 'cancelled'
}
}
このソリューションは、多分、少し冗長に感じています。
どのようにその優雅に処理するためのアイデアですか?たぶん誰かがすでに同様の "問題"を解決しているのでしょうか?