У меня есть определение чванства, которое уже завершено, поэтому я не могу изменять атрибуты или предлагать изменения. Этот файл подмены имеет различные определения даты, например:
fromDate:
description: |
- en - fromDate.....
type: string
format: date
В java клиентах это генерируется как атрибут Date . В C# отсутствует базовая c реализация Date , а просто DateTime , которая принимается как сгенерированный тип данных. Это то же самое для всех 4 способов, которые я пробовал при создании клиента:
Swagger Editor with C# Client generation
Swagger Editor with C# #2 Client generation (RestSharp 2)
Open API generator with C# Client generation
Open API generator with C# #2 Client generation (RestSharp 2)
Я ожидал бы, что шаблон сериализации, такой как yyyy-mm-dd, будет создан в клиенте c#, чтобы соответствовать тип даты, но это не так. Даты всегда сериализуются как полные строки даты / времени / часового пояса. Это не работает для серверного приложения.
Официальная документация говорит
строковая дата Как определено полной датой - RFC3339
RFC339 полная дата говорит
full-date = date-fullyear "-" date-month "-" date-mday
Как и ожидалось, мой клиент выдает неверные выходные данные (например, 2020-12-31T23: 59: 60Z ) и падает, когда он анализирует входящие данные в классе клиента API (cra sh происходит до того, как я смогу обработать ввод).
Когда я изменяю сваггер на строковый тип с шаблоном, как это предлагалось в других публикациях, он работает, но это не так, как должно быть, я должен использовать предопределенный файл чванства.
Как я могу создать клиентов или добавить специальный шаблон, который автоматически вызывается клиентом?
Cheers