我刚从这里更改了我的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部分中,但它没有显示在标题中。见下面的截图...
我认为这是因为在你的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
传递。