このSO answerは、RESTful POSTメソッドでパラメータを渡したりアクセスしたりするすべての可能な方法を完全に実行します。は、RESTful POSTで情報を送信するための複数のメソッドを使用する反パターンです
複数の方法を使用する反パターンですか?
たとえば、POST HTTPメソッドのコンテンツ本体にJSONオブジェクトを渡し、パスパラメータをアンチパターンとして使用する次のメソッドを検討しますか?
@POST
@Path("/modifyPerson/{idx}")
@Consumes(MediaType.APPLICATION_JSON)
public Response modifyPerson(Person newPerson, @PathParam("idx") int i) {
// ...
}
Iは両方Person
とidx
整数パラメータを組み合わせて、より豊かなクラス(例えばPersonWithIdx
)を作成し、パスパラメータに頼る必要なしに、その代わりに渡すことができます。上記のコードが私に購入する唯一のことは、この余分なクラスを作成する必要がなくなることです。しかし、それは健全ですか?
pathパラメータは、データを渡すのではなく、リソースの識別にのみ使用してください。識別子をデータと見なした場合、その意味で2つの方法を使用していると思います。しかし、私はそれをデータとはみなさないでしょう –
私にとっては、それは純粋に判断の呼び出しです...あなたの部分についての技術的決定。 URLの情報を基本的に*分類*したり、(URLだけを考慮しているソフトウェアに)指定するには、ロードバランシングや何を持っているのかが役に立つそのような情報を "そこに置く"かもしれません。しかし、APIが「JSONを消費する」場合は、「JSONが情報を受け取る唯一の方法である」ことをお勧めします。 (もちろん、URLの付随情報がJSONが言っているものとバグチェックと一致することを確認してください。)パターンはGUIDELINESです。 –