Swagger被具有不同URL的第二个HttpPost端点混淆

7jmck4yq  于 2023-01-30  发布在  其他
关注(0)|答案(2)|浏览(153)

我有以下API端点。

[Authorize]
[HttpPost]
[Route("{companyCode}")]
public async Task<IActionResult> GetSearchResultsAsync(TripSearchDto tripSearch, string companyCode, int? page = null) =>
    await SearchResultsCommonAsync(tripSearch, companyCode, false, page);

这很好用,但是我需要添加一个返回额外数据的版本,但是我希望这样做不会破坏现有的API。
所以我添加了第二个在URL中有“ex”段的链接。

[Authorize]
[HttpPost]
[Route("ex/{companyCode}")]
public async Task<IActionResult> GetSearchResultsExAsync(TripSearchDto tripSearch, string companyCode, int? page = null);

这似乎也工作得很好。
然而,swagger似乎对此感到困惑。

有人看到这里的问题了吗,或者我该如何解决?
如果我尝试直接导航到https://localhost:44360/swagger/v1/swagger.json,则会出现以下错误。

7xllpg7q

7xllpg7q1#

这两种方法都依赖于一个公共方法,我无意中公开了这个方法。
使该方法(不是端点)私有化解决了这个问题。

juzqafwq

juzqafwq2#

请尝试,而不是先发送后路由
HttpPost(“{公司代码}”)
以及
HttpPost(“ex/{公司代码}”)

相关问题