c# - 方法未显示在 Swagger UI(带 Swashbuckle)中,但没有错误消息

标签 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 中是否有偶然的原因?谢谢!

最佳答案

要回答您的第一个问题,您可以通过为它们定义不同的端点来使所有三种 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/

相关文章:

kubernetes - 在 K8s Ingress 中添加额外的路径后,Swagger 中主机 URL 的端口似乎消失了

python - 如何让 Swagger 生成的 Python 客户端工作?

swagger - 如何让 Swagger UI 将端口 443 与 Swashbuckle 一起使用?

C# 十进制到数字(?,?)

c# - 使用网络摄像头拍照是黑色输出[Unity3D]

Java 8 LocalDate Swagger 显示

asp.net-core - Swagger UI 未使用 Swashbuckle (5.x) 向 Header 添加 Api Key

c# - 如何使用 DropDownList 绑定(bind)到 WebGrid razor asp net mvc 4 中的模型?

c# - Html.DropDownList() 的默认空值

asp.net - 使用 Swashbuckle 自定义生成模型文档