Niedawno zaktualizowałem mój interfejs WWW z .Net core 2.2 do .Net core 3.0 i zauważyłem, że moje żądania pojawiają się teraz, gdy przekazuję wyliczenie w poście do mojego punktu końcowego. Na przykład:
Mam następujący model mojego punktu końcowego interfejsu API:
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
Gdzie wygląda FeedbackType:
public enum FeedbackType
{
Comment,
Question
}
A to jest metoda kontrolera:
[HttpPost]
public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request)
{
var response = await _feedbackService.SendFeedbackAsync(request);
return Ok(response);
}
Gdzie przesyłam to jako treść postu do kontrolera:
{
message: "Test"
type: "comment"
}
I otrzymuję teraz następujący komunikat o błędzie w tym punkcie końcowym:
The JSON value could not be converted to MyApp.Feedback.Enums.FeedbackType. Path: $.type | LineNumber: 0 | BytePositionInLine: 13."
Działało to w wersji 2.2, a błąd zaczął w wersji 3.0. Widziałem rozmowę o zmianie serializatora json w 3.0, ale nie jestem pewien, jak to powinno być obsługiwane.