私たちは、別のコンポーネントからのデータを受け入れ、処理し、豊かにしてクライアントに返すマイクロサービスを持っています。このケースをRESTにマップするための最良のトレードオフ/フィックスは何でしょうか?REST:ペイロードの突然変異を伴うPOSTメソッド
着信RQがかなり複雑なため、GETを使用することはできません。 POSTは、リソースが再ルーティングされても、IDとは別に、通常はRQペイロードと同じであるため、疑問を提起します。
私たちは、別のコンポーネントからのデータを受け入れ、処理し、豊かにしてクライアントに返すマイクロサービスを持っています。このケースをRESTにマップするための最良のトレードオフ/フィックスは何でしょうか?REST:ペイロードの突然変異を伴うPOSTメソッド
着信RQがかなり複雑なため、GETを使用することはできません。 POSTは、リソースが再ルーティングされても、IDとは別に、通常はRQペイロードと同じであるため、疑問を提起します。
私はそれが "プロセスを豊かにする"コードによってリソースが変更され、リソースのセマンティクスがプロセスで変更されているかどうかに依存すると思います。
操作でリソースがほとんど変更されず、意味が保持される場合は、PATCH操作を検討することをお勧めします。
元のリソースの多くのフィールドが変更されても、操作後にリソースタイプが変わらない場合は、PUT操作を使用できます。
操作によってリソースの意味が変わった場合、新しいタイプの(サブ)リソースが作成されている可能性があります。その場合は、別の/サブリソースURIでPOSTを実行する必要があります。
率直に言えば、これは本当に私にとってRESTのようなものではありません。あなたは本当にリソース状態を移していますか?
GET
を使用したリソースPUT
を使用:このよりRESTfulなあなたが考えるかもしれないようにするに 。
彼らは種類の異なるリソース(事前および事後の「濃縮」)あなたはGET
とし、PUT
が異なるリソース上で起こるべきであると主張する、または少なくとも異なるメディアタイプを使用することができますので。
しかし、私があなたの場合、ここではRESTパターンを使用せず、POST
を使用して、そのリクエストにすぐに豊かな応答を返すようにします。