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"
    });
});
Другие вопросы по тегам