控制器中只有一个 GET 方法,但得到 "Not supported by Swagger 2.0: Multiple operations with path"
Only one GET method in controller and yet getting "Not supported by Swagger 2.0: Multiple operations with path"
我知道有很多相同标题的问题,但这个不同。
我在我的产品控制器上遇到了这个错误,所以为了调查这个问题,我在 ASP.NET Web API 2 中创建了一个演示控制器。
DemoController.cs
namespace WMWebAPIControllers.Controllers
{
[RoutePrefix("api/Demo")]
public class DemoController : ControllerBase
{
[HttpGet]
[Route("")]
public async Task<IHttpActionResult> GetProducts(int CatalogType, string ProductNo)
{
return Ok();
}
}}
奇怪的是演示控制器只有一种方法。 swagger找不到歧义的方法。
我不明白这个问题。
下面是大摇大摆的错误。
500 : {"message":"An error has occurred.","exceptionMessage":"Not supported by Swagger 2.0: Multiple operations with path 'api/Demo' and method 'GET'. See the config setting - \"ResolveConflictingActions\" for a potential workaround","exceptionType":"System.NotSupportedException"
问题是我有一个 public 方法没有路由属性。因此,swagger 发现为空路由配置的 GetProducts() 方法存在歧义。
将 public 方法标记为 [NonAction] 属性并解决了问题。
也可以标记为private/protected来解决这个问题,但在我的例子中,它是一个接口方法。
希望这对某人有所帮助。
我知道有很多相同标题的问题,但这个不同。
我在我的产品控制器上遇到了这个错误,所以为了调查这个问题,我在 ASP.NET Web API 2 中创建了一个演示控制器。 DemoController.cs
namespace WMWebAPIControllers.Controllers
{
[RoutePrefix("api/Demo")]
public class DemoController : ControllerBase
{
[HttpGet]
[Route("")]
public async Task<IHttpActionResult> GetProducts(int CatalogType, string ProductNo)
{
return Ok();
}
}}
奇怪的是演示控制器只有一种方法。 swagger找不到歧义的方法。
我不明白这个问题。 下面是大摇大摆的错误。
500 : {"message":"An error has occurred.","exceptionMessage":"Not supported by Swagger 2.0: Multiple operations with path 'api/Demo' and method 'GET'. See the config setting - \"ResolveConflictingActions\" for a potential workaround","exceptionType":"System.NotSupportedException"
问题是我有一个 public 方法没有路由属性。因此,swagger 发现为空路由配置的 GetProducts() 方法存在歧义。
将 public 方法标记为 [NonAction] 属性并解决了问题。
也可以标记为private/protected来解决这个问题,但在我的例子中,它是一个接口方法。
希望这对某人有所帮助。