Swagger在路由调整

时间:2018-07-13 07:21:54

标签: asp.net-web-api swagger

我们有一个(asp .net)网络api,我们正在使用swagger来获取在线文档。

由于我们希望每个控制器上都有多个HttpGet方法,并且将“ Get”方法作为默认值(“ /”),因此我们将路由重写为

  config.Routes.MapHttpRoute("DefaultApiWithAction", "{controller}/{action}");
  config.Routes.MapHttpRoute("DefaultApiGet", "{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });

这很好用,但是如果我有一个像这样的控制器

public class OrdersController : ApiController
 {
        public Order Get(string orderId)
        {
         ...
        }
 }

Swagger会这样显示(就像有两种方法一样) enter image description here

我们正在运行以下配置代码:

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

namespace OurProject.Api
{
    public class SwaggerConfig
    {
        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;
            GlobalConfiguration.Configuration
                .EnableSwagger(c => c.SingleApiVersion("V3", "OurProject.Api"))
                .EnableSwaggerUi();

        }
    }
}

无论如何,有没有办法调整路由或摇动以将其显示为一种单一方法(最好是上图中的“ / Orders”)

0 个答案:

没有答案