Код: Выделить всё
public class DateRange
{
[JsonConverter(typeof(IsoDateConverter))]
public DateTime StartDate {get; set;}
[JsonConverter(typeof(IsoDateConverter))]
public DateTime EndDate {get; set;}
}
< /code>
При использовании Swashbuckle для излучения Swagger API JSON, это становится: < /p>
{ ...
"DateRange": {
"type": "object",
"properties": {
"startDate": {
"format": "date-time",
"type": "string"
},
"endDate": {
"format": "date-time",
"type": "string"
}
}
}
...
}
< /code>
Проблема здесь заключается в том, что DateTime < /code> является типом значения и никогда не может быть нулевой; Но испускаемый Swagger API JSON не помечает 2 свойства по мере необходимости Чтобы завершить картинку, мы кормим Наш Swagger API JSON TO DTSGENERATOR для генерации интерфейсов TypeScript для схемы ответа JSON. например Класс выше становится: < /p>
Код: Выделить всё
export interface DateRange {
startDate?: string; // date-time
endDate?: string; // date-time
}
< /code>
, что явно неверно. После того, как я немного погрузился в это, я пришел к выводу, что DtsGenerator делает правильные вещи, делая неочищенные свойства, которые были предпочтительными в типографии. Возможно, спецификация Swagger требует явной поддержки для необходимого vs, но сейчас эти 2 соединяются. > Атрибут каждому свойству типа значения, но это охватывает несколько проектов и сотни классов, является избыточной информацией, и ее необходимо поддерживать. Все свойства типа не нулева. Свойства типа не могут быть null Подробнее здесь: https://stackoverflow.com/questions/465 ... s-required
Мобильная версия