Добавьте Swagger UI в пользовательский.NET Web API
Я хочу интегрировать Swagger UI в мой проект C# .Net Web API. Это отличается от традиционного проекта Web API, где вы можете установить инструмент, такой как SwashBuckle, который затем выбирает маршруты HTTP, определенные в ваших классах контроллера, и создает пользовательский интерфейс.
У меня есть пользовательская реализация, которая генерирует файлы yaml OpenAPI/Swagger 3.0 для разных маршрутов.
У меня есть маршрут, определенный в универсальном файле контроллера, который принимает переменную -
http://localhost:8000/myapp/swagger/{document_name}
где document_name является переменной. Мой код берет эту переменную и генерирует пользовательскую документацию на основе этого значения.
http://localhost:8000/myapp/swagger/sedan
http://localhost:8000/myapp/swagger/suv
В приведенном выше примере мой код вернул бы другую спецификацию Open API для sedan и suv.
На данный момент URL просто возвращает спецификацию YAML Open API 3.0 в виде простого текста. Я хочу, чтобы этот файл был представлен в интерфейсе Swagger следующим образом:
Это возможно? Могу ли я использовать Swashbuckle для этого? Нужно ли делать пользовательскую реализацию для размещения пользовательского интерфейса Swagger? Какой лучший способ?
1 ответ
Если у вас уже есть файлы yaml OpenAPI/Swagger 3.0, все, что вам нужно, это пользовательский интерфейс, и у вас есть несколько вариантов:
Скопируйте файлы пользовательского интерфейса на ваш сервер.
Это даст вам максимальную гибкость, позволяя настраивать параметры конфигурации
Вам нужны только файлы в папке dist:
https://github.com/swagger-api/swagger-ui/tree/master/distИспользуйте petstore или любой другой существующий пользовательский интерфейс и передайте ваш файл в качестве параметра, например так:
http://petstore.swagger.io/?url=https://raw.githack.com/heldersepu/hs-scripts/master/swagger/swagger_aws.json