Код: Выделить всё
[Route("api/public/v{version:apiVersion}/[controller]")]
[ApiController]
public class TestController:ControllerBase
Код: Выделить всё
[Route("api/v{version:apiVersion}/[controller]")]
[ApiController]
public class InternalController:ControllerBase
Код: Выделить всё
/api/public/v1.0/Test

Пока всё хорошо. Однако мне хотелось бы упростить отображение их в пользовательском интерфейсе Swagger, поэтому я подумал, что, возможно, если я использую свойство Swagger Servers, я мог бы упростить конечные точки, чтобы они имели такой формат:
Код: Выделить всё
/v1.0/Test
Что я пробовал:
Попытка №1:Код: Выделить всё
app.UseSwagger(c=>
{
c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
{
swaggerDoc.Servers = new List
{
new OpenApiServer {
Url = "/api/public"
},
new OpenApiServer {
Url = "/api"
}
};
});
});
Запросы направляются в /api/public/api/public/v1.0/Test
code>
Попытка №2:
Я также модифицировал контроллер, чтобы использовать его в качестве маршрута:
Код: Выделить всё
[Route("v{version:apiVersion}/[controller]")]

Но я получаю ошибку 404, когда пробую это, хотя «путь» мне кажется нормальным: /api/public/v1.0/Test
Что мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/790 ... oint-route