Swagger Client для C#
От: varenikAA  
Дата: 07.09.20 03:13
Оценка:
Пробовал NSwagStudio и swagger-codegen-cli.jar (v3 и онлайн генератор)
restapi.moedelo.org

Спотыкаются на вот этих определениях:

Moedelo.DocumentsRegister.Api.Models.Dto.ApiDataResponseDto`1[[System.Collections.Generic.List`1[[Moedelo.DocumentsRegister.Api.Models.Dto.DocumentRegisterDto, Moedelo.DocumentsRegister.Api, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

Причем апи огромный, руками почистить не получается.
При этом более менее без ошибок генерит для typescript-а.
Есть у кого-то успешный опыт генерации таких клиентов под .net?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Swagger Client для C#
От: Ночной Смотрящий Россия  
Дата: 07.09.20 19:55
Оценка: +2
Здравствуйте, varenikAA, Вы писали:

AA>Есть у кого-то успешный опыт генерации таких клиентов под .net?


В свое время перебрали пачку генераторов и пришли к выводу что писать клиентов нужно руками.
Чисто теоретически я знаю как все таки сделать нормальный генератор, но это большая работа, включающая допиливание swashbuckle на предмет добавления в swagger.json дополнительной метаинформации о семантике методов.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Swagger Client для C#
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.12.22 13:56
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>В свое время перебрали пачку генераторов и пришли к выводу что писать клиентов нужно руками.

НС>Чисто теоретически я знаю как все таки сделать нормальный генератор, но это большая работа, включающая допиливание swashbuckle на предмет добавления в swagger.json дополнительной метаинформации о семантике методов.

Для нормального генератора нужна нормальная нижележащая архитектура, в которую он будет генерировать. И он будет генерировать только туда.
Соответстенно на другом фремворке/либе люди будут кусать себя за одно место.

Поэтому мы пошли другим путем — декларация АПИ и есть клиент, а серверный интерфейс идентичен клиентскому с небольшими добавками, например, на сервисе надо зависимости подкидывать. В этом случае сложнее отделить инфраструктуру, но зато убирается чудовищное количество тестов, приседаний и прочего паскудства.
Re[3]: Swagger Client для C#
От: Ночной Смотрящий Россия  
Дата: 15.12.22 14:10
Оценка:
Здравствуйте, Pauel, Вы писали:

P>Для нормального генератора нужна нормальная нижележащая архитектура, в которую он будет генерировать.


В дотнете, к счастью, с этим более менее все понятно. Ничего кроме HttpClient и штатного DI использовать сейчас не имеет особого смысла.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Swagger Client для C#
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.12.22 14:25
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

P>>Для нормального генератора нужна нормальная нижележащая архитектура, в которую он будет генерировать.


НС>В дотнете, к счастью, с этим более менее все понятно. Ничего кроме HttpClient и штатного DI использовать сейчас не имеет особого смысла.


Ну, то есть, для взрослой платформы, где подходы устоялись, все более менее нормально. Хотя шота мне кажется, для OpenAPI и в дотнете можно нарыть 100500 генераторов, про которые надо знать, что их нельзя использовать

То есть, happy path вида spec->generator->code не факт, что достижим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.