我正在使用 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 中是否有偶然的原因?谢谢!
最佳答案
要回答您的第一个问题,您可以通过为它们定义不同的端点来使所有三种 GET 方法都起作用。对于每个 GET 方法,添加以下属性:[HttpGet("the_end_point_you_want")].
即)
[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 方法。
希望对你有帮助
关于c# - 方法未显示在 Swagger UI(带 Swashbuckle)中,但没有错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45679410/