次の2つのPOSTシナリオを検討してください。
POST /localhost/api/
-エンティティを挿入し、200を返しますPOST /localhost/api/1324
-悪いリクエスト、400を返す
シナリオ2に対処するための最良の方法は何ですか?
私は何もせず、私のAPIを使用している開発者がこれが間違っていることを理解すると思いますか?これを処理するためにPOSTメソッドにコードを追加して、これが悪いリクエストであることを伝えますか?
悪いリクエストを返すことはおそらくここで行うのが最善のことだと思います。それは私が実装することになったものですが、私がまだ発見していないこれを達成するためのより良い方法があるかもしれないと感じています。
私の現在のコードは次のとおりです。
[HttpPost]
public HttpResponseMessage Post(MyEntity entity) {
if(entity.Id != null)
throw new HttpResponseException(HttpStatusCode.BadRequest);
MyEntity saved = repository.Insert(entity);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, saved);
response.Headers.Location = new Uri(Request.RequestUri, new Uri(saved.Id.ToString(), UriKind.Relative));
return response;
}
// Prevents any attempt to POST with a Guid in the url
[HttpPost]
public void Post(Guid Id) {
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
ありがとう!