c# - 生成 Swagger/Autorest API 客户端时出现语义冲突
问题描述
我已经按照这篇文章使用 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”
那么我需要改变我的功能/控制器以使自动休息工作吗?
谢谢!
解决方案
推荐阅读
- javascript - 将我的 SQL 转换为 Typeorm 查询生成器
- c++ - 是否有 C++ 容器不会在插入/删除时使引用无效?
- android - 将 Compose 语义树打印到日志
- c# - LINQ 读取 XML 字符串并放入变量
- jquery - 光滑的滑块 - 如何链接到单独页面上的幻灯片
- oracle - Oracle 中带有 Merge 语句的 CTE
- python - Python:无法启动已安装的 Windows 服务
- python - 文件浏览器 GUI 读取文件路径
- javascript - React Material ui:想要在所有其他字段的顶部显示所有搜索到的 li 项目
- html - 使用 Google 幻灯片和 iframe 向 Google 协作平台添加动画