生成 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...