当前位置: 首页 > 知识库问答 >
问题:

带有空格的swagger codegen和$ref属性

淳于玺
2023-03-14

我目前正在考虑使用我们的swagger文件,该文件主要用于生成客户端SDK的文档。

我注意到我们的 swagger 文件(采用 swagger 2.0 json 格式)包含对以下防御的引用:

"$ref":"#/definitions/My%20Awesome%20Object"

当我生成 C# SDK 时,这将转换为如下所示的代码:

ApiResponse<My20Awesome20Object>

从swagger文件中删除解决了这个问题,但与web后端人员交谈时,他们说它在那里,否则无法验证,我找不到引用,但我记得我在swagger代码页中找到了一个引用,该引用声明$ref字段应该是URI编码的,因此看起来是正确的。

我目前的计划是编写一个简单的脚本,只需剥离,以生成对类的正确引用。但这感觉像是一个丑陋的变通方法。您有什么建议吗?如何在获得正确代码的同时,以符合标准的更好方式解决这个问题?

干杯,马库斯

共有1个答案

薛彭薄
2023-03-14

$ref值是URI。存在是因为定义部分中的架构名称包含空格,如下所示:

"definitions": {
  "My Awesome Object": {    // <---   $ref: "#/definitions/My%20Awesome%20Object"
    "type": "object",
    ...
  }
}

一些工具在处理模式名称中的非字母数字字符方面存在问题;这包括空格,

最好的解决方法是从$affs中删除,并从定义部分中的模式名称中删除空格。这样,如果您迁移到较新的OpenAPI版本,模式名称将与OpenAPI 3.0向前兼容。

 类似资料:
  • 问题内容: 使用BeautifulSoul和Python,我希望所有与给定类属性匹配的项都包含这样的多个名称: 我尝试了几种匹配该类的方法。正则表达式,通配符,但我总是得到一个空列表。 有什么方法可以使用正则表达式,通配符或如何匹配此类? 问题答案: 您可以使用CSS选择器来匹配许多类:

  • 这是我的目标: 我不知道我收到myObj的内容。我有一个字符串变量,表示我需要的值的键。看起来像这样: 如何使用此字符串变量从对象获取值? 显而易见的猜测是行不通的: 编辑:我希望有一个比这个例子更灵活的解决方案。也就是说,我可能需要深入到另一个层次,点符号可能会被加入到混合中。我用的是有角度的。js,并认为一定有什么东西已经做到了这一点。

  • 问题内容: 您能否解释一下这两个CSS类语法之间的区别: 和 我不明白两者之间的区别。第一行指示两个不同的类,它们应用了相同的样式。但是关于第二个问题,写在“ .element”后面的“ .large”是什么意思? 问题答案: 我认为您对第一个含义有一些误解。 意味着这些CSS设置将应用于该类的任何HTML元素,该HTML元素位于类的元素内。 在此示例中,您的第一个CSS条目将影响中间的标签。 您

  • 问题内容: 关于HTML class 属性,该属性将CSS类(或多个类?)分配给标记。空间的使用,例如 已验证? 此语法已被某些Web设计人员使用,并出现在导出的Adobe InDesign HTML(已通过版本5和6测试)和另一种HTML生成软件中。 它()是有效的W3C语法吗? 什么版本的CSS和HTML?(从哪个版本开始生效?) 编辑:一个自然的 子问题 “ W3C说如何解释它?”(这是“替

  • 我需要构造正则表达式来验证文本,它可以包含空格和连字符,除了连字符之外没有数字和特殊字符。文本应以字母开头。没有以空格和连字符开头和结尾。单词之间应允许使用单个空格。 ASDF-A ADF-AAD A-A-A A DDD-A 示例 AD-AA-A ADF-ad-DD-A AAA

  • 问题内容: 当我使用PHP设置HTML表单输入元素的值时,只要数据中没有空格,它就可以正常工作。 如果我输入“ Jonathan”作为用户名,则按预期将其返回给我。但是,如果输入“ Big Ted”,则在提交表单时只会重复返回“ Big”。 注意该变量是正确的。当我使用PHP回显它时,它设置为“ Big Ted”。 问题答案: 引用它。否则,空格将变成属性分隔符,空格之后的所有内容都将被视为元素属