Pull to refresh

Comments 4

Автор, вы уделили слишком мало времени для изучения Swashbuckle.
github.com/domaindrivendev/Swashbuckle.AspNetCore
Почитайте. Это очень гибкий инструмент с довольно большим количеством пакетов.
В нашей организации он покрывает все кейсы, когда нужно сгенерировать спецификацию API.
Пишу этот пост для того, чтобы те, кто задумался об автоматической генерации документации, знали о существовании решения, не уступающего по функциональности выбранному вами.
P.S. а ещё Swashbuckle, судя по github, популярнее :)
Спасибо. Поправил этот момент в статье.
Подразумевалось, что используя Swashbuckle нужен ещё дополнительный инструмент, который по спецификации сгенерирует клиента. В NSwag сразу всё в одном + NSwag studio где можно поиграться с настройками по генерации клиентского кода.

На самом деле, NSwag Studio — это тоже по сути отдельный инструмент (хоть и расположен в одном репозитории с NSwag), и его можно использовать для генерации по спецификации, сформированной любым из представленных вами инструментов (хоть Swashbuckle, хоть NSwag), либо описанной вручную. Но он неудобен тем, что нам надо скакать от IDE к NSwag Studio, чтобы:


  • в NSwag Studio выбрать необходимые параметры и сгенерировать код в локальный файл
  • потом добавить этот файл в свой проект в IDE
  • а в случае обновления спецификации проделать всё заново

Чтобы избежать этих проблем я использую собственное решение для Visual Studio: Unchase OpenAPI (Swagger) Connected Service — подключенная служба на подобие Add Service Reference для WCF или Add Web Reference для WSDL. Можете его опробовать, возможно, он вам также будет полезен.


При этом не важно, каким образом или с помощью какого из инструментов сгенерирован/создан файл спецификации.


А Swashbuckle довольно гибкий и расширяемый (с помощью атрибутов и фильтров), и часто используется для генерации спецификации.
Я в своих проектах, например, всегда использую Swashbuckle (с доп. фильтрами) + Unchase OpenAPI (Swagger) Connected Service.

UFO just landed and posted this here
Sign up to leave a comment.