我正在使用Swashbuckle Swagger编写API文档,并且我的控制器具有4个端点,其中3个端点具有相同的名称(但具有不同的参数),而Swagger不显示它们。我无法更改这些方法的名称,也无法解决冲突并仅采用第一个方法。我想将它们全部显示在Swagger UI上,但我不知道如何。
我尝试实现其他变通方法,例如指定Route注释等,但是没有用。
方法如下:
public IHttpActionResult Get([FromUri] int[] myId, [FromUri] int[] otherId, DateTime fromDate, DateTime toDate, bool allEntities = false)
public IHttpActionResult Get([FromUri] int[] myId, DateTime fromDate, bool allEntities = false)
public IHttpActionResult Get([FromUri] int[] myId, [FromUri] int[] otherId, DateTime date, string someOtherId = null, bool allEntities = false, string lan = "en")
所需结果是在SwaggerUI上显示所有这些方法,而不仅仅是第一个。有什么办法吗?
答案 0 :(得分:0)
不幸的是,Swagger不允许这样做。我不知道每种方法的内容如何,但是您可以考虑将三种方法组合成一个方法,该方法接受三种方法中所有参数的组合,然后根据接收到的参数,以使最有意义(我想您会在私有方法中保持这种逻辑)。对不起这个坏消息!