14

一般的なエンティティの相互作用を行うためにRESTを使用する方法を理解しています-URL名を使用してエンティティにマップし、HTTP動詞を使用してそれらのエンティティのアクションにマップします。しかし、RPCのような「アクション」を見る一般的に受け入れられている方法は何ですか?

たとえば、デバイスをリセットするためのコマンドを送信したいとしますか?ここには本当の「エンティティ」はありませんか、POSTのようなことをしますかhttp://mydevice/device/reset?

4

3 に答える 3

13

/device/resetまたは/system/reset大丈夫です。

REST の「デザイン パターン」では、動詞を使用しないことをお勧めします。

POST http://mydevice/system/state    
<stateType>RESET</stateType>

関連情報:

于 2010-03-15T14:19:56.280 に答える
9

POSTを使用する場合はそうではないと思います。「RESETアクション」はべき等アクションであるため(n回呼び出すと、常に同じ結果が得られます)、IMHOではPOSTの代わりにPUT呼び出しを使用する必要があります(POSTはべき等ではないため)。

また、リソースを配置しているので、使用することができます

PUT http://system
<device>
  <status>RESET</status>
</device>

また

 PUT http://system/status/reset

しかし、最初のものはリソースを配置しているので「より安らぎ」であり、2番目のものはURLを使用するだけだと思います。

于 2010-03-15T14:30:48.547 に答える
2

私は通常、エンティティに「システム」などの名前を付けます。したがって、「/system/reset」を実行します。デバイスを選択したので、それも機能します。

しかし、そうです、私は通常、これらのタイプのアクションを POST メソッドを使用する更新であると考えています。したがって、/device/reset に POST するのは正しいと思います

于 2010-03-15T14:17:04.647 に答える