Создание документации WebAPI в формате swagger json
Я создал WebAPI с использованием .Net 4.5 и хочу документировать этот API с помощью Swagger.
Я добавил swagger-ui в мой проект .Net. Теперь, когда я просматриваю.. /swagger -ui/index.html, он успешно открывает любимый магазин api-docs (json) в формате пользовательского интерфейса swagger.
Мой вопрос: как я могу создать такой (swagger) json для моих контроллеров и моделей WebAPI? Поскольку я ввел необходимые резюме/комментарии XML к классам и атрибутам С#.
Я видел, что Swagger.Net и Swashbuckle делают похожие вещи, но я не мог действительно понимаю, как создать файл swagger-json, используя любой из них. Могу быть очень маленькой ошибкой, которую я делаю, но не могу указать.
Пожалуйста, помогите.
Ответы
Ответ 1
Как указано, /swagger приведет вас к пользовательскому интерфейсу swagger.
Если вы используете Swashbuckle, то /swagger/docs/v1
должен отвезти вас в файл swagger.json - я нашел это с помощью инструментов Chrome Dev.
Изменить: если вы используете Swashbuckle.AspNetCore, то URL-адрес немного отличается - /swagger/v1/swagger.json
Ответ 2
Вам нужно интегрировать Swagger.NET в ваш проект, чтобы в итоге появился следующий контроллер:
public class SwaggerController : ApiController { /* snip */ }
и вы также должны зарегистрировать следующий маршрут:
context.Routes.MapHttpRoute (
name : "Swagger",
routeTemplate: "api/swagger"
defaults: new
{
controller = "Swagger",
action = "Get",
});
Предполагая, что вы работаете, вы должны иметь возможность вызвать /api/swagger и получить что-то вроде следующего:
{
apiVersion: "4.0.0.0",
swaggerVersion: "2.0",
basePath: "http://localhost:5555",
resourcePath: null,
apis: [
{
path: "/api/docs/Values",
description: "No Documentation Found.",
operations: [ ]
},
{
path: "/api/docs/Home",
description: "No Documentation Found.",
operations: [ ]
}
]
}
то в SwaggerUI/index.html вы захотите обновить обнаружение url:
<script type="text/javascript">
$(function () {
window.swaggerUi = new SwaggerUi({
discoveryUrl: "http://localhost:5555/api/swagger",
apiKey:"",
dom_id:"swagger-ui-container",
supportHeaderParams: false,
supportedSubmitMethods: ['get', 'post', 'put']
});
window.swaggerUi.load();
});
</script>
Ответ 3
Вы можете использовать настольное приложение NSwagStudio для загрузки json-документа без запуска проекта api.
Предоставляя сборку api.
https://github.com/RSuter/NSwag/wiki/NSwagStudio
Загрузите приложение рабочего стола Windows (NSwagStudio).