在我的ASP.NET Core应用程序中,我使用NSwag创建swagger.json文件。
当我构建我的项目时,我得到以下错误:
严重性代码描述项目文件行抑制状态错误MSB 3073命令“dotnet“. nuget\packages\nswag.msbuild\13.20.0\buildTransitive../tools/Net70/dotnet-nswag.dll”run aspnetcoretoopenapi. json/variables:“input=\src\ApiGateway.Api\ApiGateway.Api.csproj,output=\src\ApiGateway.Api../swagger/ApiGateway. Api. json,configuration= NULL,documentName=Public API””退出,代码为-1。
ApiGateway.Api \src\Cat.Infrastructure\Build\Bull. SwaggerDocument.targets
我的控制器看起来像这样:
[ApiController]
[Route("v1/[controller]")]
public class MyController : MyControllerBase
{
[HttpGet("{id}/result")]
public async Task<IActionResult> Get([FromRoute] int id)
{
return await ForwardRequest(HttpMethod.Get,
"http://localhost/v2/result");
}
}
public class MyControllerBase : ControllerBase
{
public async Task<IActionResult> ForwardRequest(HttpMethod httpMethod, string url, object? body = null)
{
// do something.
}
}
字符串
当我把“ForwardRequest”中的逻辑放入MyController并删除继承时,一切都很好。当我开始使用MyControllerBase类时,它就中断了。
我错过了什么?
2条答案
按热度按时间zzwlnbp81#
你需要添加
[HttpPost]
或[HttpGet]
或[HttpPut]
等.属性到你的基类方法,但看看下面的例子基类
字符串
实现
型
fjaof16o2#
API端点参数中的HttpMethod可以替换为字符串。
注意:我使用[HttpPost]是因为“object?body”将是fromBody。它可以是[HttpGet],但你不能在Swagger中使用它。
字符串