Нещодавно я оновив свою веб-версію api з .Net core 2.2 до .Net core 3.0 і помітив, що мої запити отримують помилку зараз, коли я передаю enum у дописі до моєї кінцевої точки. Наприклад:
У мене є кінцева точка api:
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
Де виглядає такий тип зворотного зв’язку:
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. Я бачив розмови про те, що серіалізатор json змінюється в 3.0, але не впевнений, як з цим слід поводитися.