最近、web apiを.Net core 2.2から.Net core 3.0にアップグレードしましたが、ポストの列挙型をエンドポイントに渡すと、リクエストでエラーが発生することに気付きました。例えば:
私のAPIエンドポイントには次のモデルがあります。
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
FeedbackTypeは次のようになります。
public enum FeedbackType
{
Comment,
Question
}
そしてこれはコントローラメソッドです:
[HttpPost]
public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request)
{
var response = await _feedbackService.SendFeedbackAsync(request);
return Ok(response);
}
これを投稿の本文としてコントローラーに送信します。
{
message: "Test"
type: "comment"
}
そして、私は今、このエンドポイントに次のエラーを投稿しています:
The JSON value could not be converted to MyApp.Feedback.Enums.FeedbackType. Path: $.type | LineNumber: 0 | BytePositionInLine: 13."
これは2.2で機能し、3.0でエラーが発生しました。3.0で変更されたjsonシリアライザーについての話を見ましたが、これがどのように処理されるべきかわかりません。