Swagger ломается при добавлении API-контроллера в мой хост-проект в aspnetboilerplate
Я загрузил новый шаблон проекта.Net Core MVC с https://aspnetboilerplate.com/Templates, настроил все (базу данных и восстановленные пакеты nuget) и запустил приложение Host. Все хорошо, так как я запускаю интерфейс Swagger и могу видеть все стандартные сервисы.
Затем я приступил к созданию простого контроллера API в приложении Host:
[Route("api/[controller]")]
[ApiController]
public class FooBarController : MyAppControllerBase
{
public string HelloWorld()
{
return"Hello, World!";
}
}
И тогда Swagger не может загрузить определение API:
Fetch error
Internal Server Error http://localhost:21021/swagger/v1/swagger.json
Если я удалю Route
а также ApiController
Атрибуты, Swagger снова работает, но мой новый контроллер не отображается. Я могу получить к нему доступ, перейдя в http://localhost:21021/foobar/helloworld
что, вероятно, хорошо, но я бы хотел, чтобы это отображалось в Swagger UI.
Я что-то пропустил?
0 ответов
Вот как вы должны настроить Swagger в методе "Configure(приложение IApplicationBuilder, IHostingEnvironment env)".
#region Swagger COnfiguration
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("swagger/v1/swagger.json", "Your class name");
c.RoutePrefix = string.Empty;
});
#endregion
А вот и ваши настройки configureServices для чванства.
services.AddSwaggerGen(config =>
{
config.SwaggerDoc("v1", new Info
{
Title = "Title Here",
Version = "v1"
});
});