최근에 웹 API를 .Net 코어 2.2에서 .Net 코어 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 serializer가 변경되는 것에 대해 이야기했지만 이것이 어떻게 처리되어야하는지 잘 모르겠습니다.