如何用Azure Autorest生成C#客户端?解决Swagger格式验证报错
解决Autorest生成C#客户端的Swagger邮箱格式验证错误
嘿,我看你遇到的问题很明确——Autorest的Schema验证器严格检查了你的Swagger文档,发现info.contact.email字段的格式不符合标准邮箱规范,直接打断了代码生成流程。这里有两种靠谱的解决办法:
方法一:修正Swagger文档的邮箱格式(推荐)
这是最规范的处理方式,直接调整你的swagger.json文件就行:
- 找到文档里的
info节点,定位到下属的contact对象 - 把
email字段改成符合RFC标准的邮箱格式,比如support@mytrack.com,别留空或者填个非邮箱的字符串 - 保存修改后,重新运行你的Autorest命令:
AutoRest -mynamespace mytrack.Client -CodeGenerator CSharp -Modeler Swagger -Input swagger.json -PackageName mytrack.client -AddCredentials true
方法二:跳过Schema验证(临时应急)
如果你暂时没法修改Swagger文档,也可以给Autorest加个参数跳过验证步骤,在原命令末尾加上--skip-validation就行:
AutoRest -mynamespace mytrack.Client -CodeGenerator CSharp -Modeler Swagger -Input swagger.json -PackageName mytrack.client -AddCredentials true --skip-validation
提醒下:这个办法只是临时绕开问题,不建议长期用,毕竟Swagger文档不规范的话,后续生成的客户端说不定会出其他潜在问题。
另外,你用的是Autorest 2.0.4262版本,这个版本的验证规则确实偏严格,要是之后还遇到类似的格式小问题,也可以考虑升级到更新的Autorest版本,新版本对一些非致命的格式问题会更宽容些。
内容的提问来源于stack exchange,提问作者Kirsten
相关产品推荐
相关产品推荐

