如何解决生成 Swagger/Autorest API 客户端时的语义冲突
我已经按照这篇文章使用 autorest 生成 API 客户端库:
How to Automatically Generate Clients for your REST 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”需要在任一操作中定义 路径或操作级别。 (在“post”中缺失)(路径 > /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”
那么我需要更改我的函数/控制器来使 autorest 工作吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。