Di recente ho aggiornato il mio API Web da .Net core 2.2 a .Net core 3.0 e ho notato che le mie richieste stanno ricevendo un errore ora quando passo un enum in un post al mio endpoint. Per esempio:
Ho il seguente modello per il mio endpoint api:
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
Dove si presenta così FeedbackType:
public enum FeedbackType
{
Comment,
Question
}
E questo è il metodo del controller:
[HttpPost]
public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request)
{
var response = await _feedbackService.SendFeedbackAsync(request);
return Ok(response);
}
Dove lo invio come post body al controller:
{
message: "Test"
type: "comment"
}
E ora sto ricevendo il seguente errore posting su questo endpoint:
The JSON value could not be converted to MyApp.Feedback.Enums.FeedbackType. Path: $.type | LineNumber: 0 | BytePositionInLine: 13."
Funzionava in 2.2 e ha iniziato l'errore in 3.0. Ho visto parlare del serializzatore json che cambia in 3.0, ma non sono sicuro di come gestirlo.