ASP.NET WebAPI 2を使用する場合、要求に必須フィールドが含まれていないとエラーをスローする方法はありますか?現在の動作は、欠落しているフィールドにデフォルト値を設定することです。それを変更する方法はありますか?Web API - 必要に応じてエラーコードを返します。要求に含まれていません。
Json.NETのドキュメントには、特別な設定があります。 http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_MissingMemberHandling.htm ですが、それほど大きな違いはありません。
コードサンプル:コントローラ
[HttpPost]
[Route("api/post-guid")]
public TestResponse Post(RequestWithGuid request) {
if(request == null) {
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
// This check will work but I am trying to omit it
// with serializer settings to not put default values for missing members.
//if(request.id == default(Guid)) {
// throw new HttpResponseException(HttpStatusCode.BadRequest);
//}
return new TestResponse {
id = request.id
};
}
public class RequestWithGuid {
public Guid id;
}
でエラーハンドラを作成しました。 }この部分は、実際に省略しようとしています。 – klashar