新添加的API参数未显示在Swagger中

问题描述 投票:1回答:1

我刚从这里更改了我的Delete API:

    // DELETE: api/Doors/0
    /// <summary>
    /// Delete an existing door by id.
    /// </summary>
    /// <param name="id">The ID of the door to be deleted.</param>
    /// <returns></returns>
    public IHttpActionResult Delete(int id)
    {
        ....
    }

对此:

    // DELETE: api/Doors/0/0
    /// <summary>
    /// Delete an existing door by id.
    /// </summary>
    /// <param name="OrganizationSys">The Organization ID for the door to be deleted.</param>
    /// <param name="id">The ID of the door to be deleted.</param>
    /// <returns></returns>
    public IHttpActionResult Delete(int OrganizationSys, int id)
    {
        ....
    }

然后在Swagger中,新参数IS显示在Try It部分中,但它没有显示在标题中。见下面的截图...

enter image description here

c# asp.net-web-api swagger swagger-ui
1个回答
1
投票

我认为这是因为在你的RoutingConfig.cs(或等效物)中,只有id参数被设置为使用/,并且所有其他参数(例如OrganizationSys)必须使用?&传递

例如:在您的xml评论中

DELETE: api/Doors/0/0

但实际上它

DELETE: api/Doors/0?OrganizationSys=123

在创建标题时,Swagger可能无法识别查询字符串参数。

编辑:

这是我的意思的一个例子(取自默认的ASP .NET MVC Web应用程序)

// RoutingConfig.cs
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

这个默认路由使得id参数使用/123而不是需要通过?id=123传递。

© www.soinside.com 2019 - 2024. All rights reserved.