方法不显示在Swagger UI(w / Swashbuckle)中,但没有错误消息

时间:2017-08-14 16:57:51

标签: c# swagger swashbuckle

我正在用Swashbuckle写一个api,但遇到了问题。我的AController中有三个Get方法:

[ResponseType(typeof(IEnumerable<A>))]
public IHttpActionResult Get(int bId);

[ResponseType(typeof(IEnumerable<A>))]
public IHttpActionResult Get(IList<int> cIds);

[ResponseType(typeof(IEnumerable<A>))]
public IHttpActionResult Get(int bId, IList<int> cIds);

我希望有一个关于重载端点的错误,或者它可以使用带有两个可选参数的单个get方法,涵盖所有情况。相反,我只是要显示第二种方法,这似乎是随意的。

我想知道,有没有办法让所有三个工作,并且,有没有理由在UI中显示第二种方法?谢谢!

1 个答案:

答案 0 :(得分:1)

要回答您的第一个问题,您可以通过为它们定义不同的端点来获得所有三种GET方法。对于每个GET方法,添加以下属性:[HttpGet(&#34; the_end_point_you_want&#34;)]。

IE)

[HttpGet("/GetbID/{bId})")
[ResponseType(typeof(IEnumerable<A>))]
public IHttpActionResult Get(int bId)

[HttpGet("/GetListcId")]
[ResponseType(typeof(IEnumerable<A>))]
public IHttpActionResult Get(IList<int> cIds)

对于你的第二个问题,我不确定为什么选择第二个GET,但我的猜测是SwashBuckle如何检索每个GET方法。

希望这有帮助