Я пытаюсь интегрировать Swagger UI в свой проект ASP.Net MVC, используя Swashbuckle, и у меня возникают проблемы с тем, что Swashbuckle не распознает ни один из моих контроллеров / конечных точек.
Для простоты я создал совершенно новый проект содин контроллер, который выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestAPI.Controllers
{
public class HomeController : Controller
{
[Route("Home")]
[HttpGet]
public ActionResult Index()
{
return View();
}
[Route("Home/About")]
[HttpGet]
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
[Route("Home/Contact")]
[HttpGet]
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
Я использовал Nuget, чтобы добавить Swashbuckle, используя следующую команду:
Install-Package Swashbuckle
Я сохранил все настройки по умолчанию для обоих проектов в целом, кака также для самого Swashbuckle (Использование сгенерированного файла SwaggerConfig.cs)
Когда я перехожу к конечной точке Swagger, меня приветствует пустое определение Swagger, и ни один из моих контроллеров / конечных точек не отображается.
Определение пустого сваггера
Я не знаю, как заставить мои контроллеры / конечные точки отображаться.Все демо-версии Swashbuckle создают впечатление, что эта базовая конфигурация по крайней мере заставит отображать конечные точки.
Спасибо!
РЕДАКТИРОВАТЬ: Ниже приведен мой SwaggerConfig.cs
using System.Web.Http;
using WebActivatorEx;
using TestAPI;
using Swashbuckle.Application;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace TestAPI
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "TestAPI");
})
.EnableSwaggerUi();
}
}
}