0
Web API(REST)を使用してデータベースに新しいアイテムを作成(POSTメソッド)する際の一般的なルールまたはベストプラクティスは何ですか?私のPOSTメソッドの本体に識別子が含まれていますか?Web API:POSTメソッドの本体に識別子が含まれていますか?
public HttpResponseMessage Post(AddressModel addressModel)
{
using (var context = new DbContext())
{
if (context.address.Any(y => y.id == addressModel.id)
throw new Exception("Item already exist"); // or return BadRequest
...
}
}
識別子なし::識別子で
public HttpResponseMessage Post(AddressModel addressModel)
{
if (addressModel.id != null)
throw new Exception("identifier cannot be set"); // or return BadRequest
using (var context = new DbContext())
{
addressModel.id = GetNewId();
// GetNewId generate the next correct if from data
// from context.address.last ...
...
}
}
そしてもちろんの最初のソリューションは、より効率的であるので、あなただけの何の正解がない私に言うことができる(downvoting前)
この場合とこの場合ともう一方は他の理由でより良いです。もちろん、私は自分の意見を持っています。これは私のような経験のない人の意見です。しかし、経験豊富な人にとっては、私は彼らが躊躇せずに、そして意見がない議論でこの質問に答えることができると確信しています。だから、これは私の意見ではない質問か、なぜ私に教えてください。
あなたのAPIの消費者は、Idが何であるべきかをどのように知っていますか?あなたは話しているのか聞いていますか? – Jasen