3 回答

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
您的控制器中已經(jīng)有一個帶有屬性的方法HttpPost。由于您沒有明確指定路線,因此這些操作會發(fā)生沖突。
您可以通過為這些 POST 操作指定路由來解決此問題,例如:
[HttpPost("createMultiple")]
public IActionResult CreateCars(List<Car> cars) {}
[HttpPost()]
public IActionResult CreateCar(Car car) {}
上面的建議當(dāng)然不是“RESTfull”,因為你的 URL 中有動詞。
我建議修改您的代碼,以便您只有一個“創(chuàng)建”方法,因為上述兩個操作實際上隱式相同(我猜)。使用CreateCars僅包含一項的汽車集合調(diào)用該操作在某種意義上實際上與調(diào)用該CreateCar操作相同。

TA貢獻(xiàn)1878條經(jīng)驗 獲得超4個贊
使用以下代碼解決該問題,
services.AddSwaggerGen(options => { options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); });

TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊
在我的代碼中,我使用 Swagger Swashbuckle 5.5.1 和 Microsoft.AspNetCore.Mvc.Versioning 4.1.1 對于我來說 [ApiExplorerSettings(GroupName = "vx.0")] 其中 x 是同一控制器或其他控制器中多個操作的版本,工作正常。我還同時使用 MapToApiVersion 屬性,但屬性 ApiExplorerSettings 避免沖突。請參閱https://www.myget.org/feed/domaindrivendev/package/nuget/Swashbuckle.AspNetCore.Swagger 的“裝飾單個操作”
在我的測試中我有 2 個控制器。第一個控制器映射版本 1.0 和 2.0。僅第二個控制器地圖版本 3.0
第一控制器:
[Authorize]
[ApiVersion("1.0")]
[ApiVersion("2.0")]
[Route("viewqlikapi")]
[Route("ViewQlikApi/v{version:apiVersion}")]
[ApiController]
public class QlikController : ControllerBase, IQlikController
兩個具有相同路徑的操作 // Dati Pratica Audit
[HttpGet]
[ApiExplorerSettings(GroupName = "v1.0")]
[Route("datipraticaaudit")]
public RisultatoElementiPagina<ViewQlikDatiPraticaAudit GetElementiPaginaDatiPraticaAudit(int numeroElementi, int indicePagina)....
[HttpGet]
[MapToApiVersion("2.0")]
[ApiExplorerSettings(GroupName = "v2.0")]
[Route("datipraticaaudit")]
public RisultatoElementiPagina<ViewQlikDatiPraticaAudit> GetElementiPaginaDatiPraticaAuditV2(int numeroElementi, int indicePagina, int other)...
和第二個控制器..
[Authorize]
[ApiVersion("3.0")]
[Route("ViewQlikApi/v{version:apiVersion}")]
[ApiController]
public class QlikV2Controller : ControllerBase
和行動
[HttpGet]
[MapToApiVersion("3.0")]
[ApiExplorerSettings(GroupName = "v3.0")]
[Route("auditoperativoaccesso")]
public RisultatoElementiPagina<ViewQlikAuditOperativoAccesso> GetElementiPaginaAuditOperativoAccesso(int numeroElementi, int indicePagina, int o)
- 3 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報