我刚刚更改了我的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部分中,但它没有显示在标题中。见下面的截图...
答案 0 :(得分: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
传递。