我已经按照这篇文章使用 autorest 生成 API 客户端库:
我首先在 VS2019 中执行了这个命令:
iwr http://localhost:5000/swagger/v1/swagger.json -o ./docs/openapi/api-v1.json
这很好用。可以看到生成成功的json文件。然后我执行了这个 autorest 命令:
autorest --input-file=./docs/openapi/api-v1.json --v3 --csharp --use-datetimeoffset=true --sync-methods=none --output-folder=./src/SampleApi.Client --namespace=SampleApi.Client
发生了一堆错误,它们都是同一类型:
node.exe:错误:语义冲突:路径“/Schools/Details/{SchoolKey}”中引用的路径参数“SchoolKey”需要在路径或操作级别的每个操作中定义。(“帖子”中缺失)(路径 > /Schools/Details/{SchoolKey})
我不确定这个错误是什么意思以及如何解决它?这是我的功能:
[HttpPost]
[Authorize(Policy = Policies.User)]
[Route("{SchoolKey}")]
public async Task<ApiResponse> Details(string schoolKey)
{
...
}
我的控制器是这样的:
[ApiController]
[Route("[controller]/[action]")]
public class SchoolsController
API 的终点是“/Schools/Details/12345”
那么我需要改变我的功能/控制器以使自动休息工作吗?
谢谢!