Swagger ломается при добавлении контроллера API в мой хост-проект в aspnetboilerplate - PullRequest
0 голосов
/ 30 мая 2019

Я скачал новый шаблон проекта .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.

Я что-то упустил?

1 Ответ

0 голосов
/ 06 июля 2019

Вот как вы должны сконфигурировать ваш 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 для swagger.

services.AddSwaggerGen(config =>
{
    config.SwaggerDoc("v1", new Info
    {
        Title = "Title Here",
        Version = "v1"
    });
});
...