Requisiti: Se c'è un tipo di enum nel parametro, l'interfaccia restituirà un errore "400 Bad Request", perché Refit converte di default l'enum nell'oggetto in una stringa, e l'interfaccia non può convertire la stringa in un errore enum, come segue:
{ "tipo": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "titolo": "Si sono verificati uno o più errori di validazione.", "stato": 400, "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00", "errori": { "rechiesta": [ "Il campo di richiesta è richiesto." ], "$.languagePermissions": [ "Il valore JSON non poteva essere convertito in LanguagePermissionsEnum. Path: $.languagePermissions | LineNumber: 0 | BytePositionInLine: 145." ] }
}
La spiegazione ufficiale è che il motivo per cui di default si convertono gli enum in stringhe è cheAumentare la leggibilità e facilitare la lettura delle informazioni sui parametri。 Riferimento:Il login del link ipertestuale è visibile.
Il comportamento predefinito è serializzare l'enum in una stringa, che puoi modificare fornendo al serializer le tue impostazioni:Il login del link ipertestuale è visibile.
Quindi, passiamo le impostazioni personalizzate di Refit e non usiamo quelle predefinite, eliminiamoJsonStringEnumConverterIl convertitore va bene, il codice è il seguente:
Soluzione:Il login del link ipertestuale è visibile. (Fine)
|