Несколько версий конечной точки появятся в Swagger UI с WebAPI - PullRequest
0 голосов
/ 19 сентября 2019

Я использую WebAPI MVC с .net framework.Я пытаюсь отобразить несколько версий конечных точек в моем контроллере.У меня устаревшая 1.0 и текущая 1.1.В интерфейсе Swagger это просто показывает перечеркнутый 1.0.Я хотел бы видеть 1.1 ниже.И 1.0, и 1.1 работают, если я их называю.

public class FooController : BaseFundApiController<FooRequest>
{
    [Obsolete]
    [ApiVersion("1.0")]
    [Route("api/v1.0/Foo")]
    [ResponseType(typeof(FooResponse))]
    public async Task<HttpResponseMessage> FooInfo([FromBody] FooRequest FooRequest)
    {
    }

    [ApiVersion("1.1")]
    [Route("api/v1.1/Foo")]
    [ResponseType(typeof(FooResponse))]
    public async Task<HttpResponseMessage> FooInfo2([FromBody] FooRequest FooRequest)
    {
    }
}

Вот соответствующие биты для маршрутизации webapi

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
    config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}"
    );

    var constraintResolver = new DefaultInlineConstraintResolver
    {
    ConstraintMap =
    {
        ["apiVersion"] = typeof( ApiVersionRouteConstraint )
    }
    };
    config.MapHttpAttributeRoutes(constraintResolver);
    config.AddApiVersioning();
    }
}

Как мне отобразить обе версии конечной точки?

1 Ответ

0 голосов
/ 19 сентября 2019

понял, что ApiVersion должен быть 1,0

   [ApiVersion("1.0")]
    [Route("api/v1.1/Foo")]
    [ResponseType(typeof(FooResponse))]
    public async Task<HttpResponseMessage> FooInfo2([FromBody] FooRequest FooRequest)
    {
    }
...