Yaml 什么是;“内容”:“虚张声势/openapi中的平均值”;回应:

Yaml 什么是;“内容”:“虚张声势/openapi中的平均值”;回应:,yaml,swagger,swagger-codegen,Yaml,Swagger,Swagger Codegen,使用Swagger/OpenAPI(以及随后的Swagger-codegen),我无法找到两者之间的区别 这个,直接从 (第一个示例,json格式) 及 我已经将这个示例放到一个简单的json swagger规范(json)中,并运行swagger Codegen(python、flask)来生成我的控制器和模型。Yaml似乎是首选的内部表示形式,因此当生成器运行时,它会创建一个Yaml文件 对于前者,响应类型为“无” 而后者产生了我认为我应该期待的结果: responses: 200:

使用Swagger/OpenAPI(以及随后的Swagger-codegen),我无法找到两者之间的区别

这个,直接从 (第一个示例,json格式)

我已经将这个示例放到一个简单的json swagger规范(json)中,并运行swagger Codegen(python、flask)来生成我的控制器和模型。Yaml似乎是首选的内部表示形式,因此当生成器运行时,它会创建一个Yaml文件

对于前者,响应类型为“无”

而后者产生了我认为我应该期待的结果:

responses:
  200:
    description: "a pet to be returned"
    schema:
      $ref: "#/components/schemas/Pet"
例如,使用
Content

内容意味着什么? 我在示例中遗漏了什么,为什么
内容
不会导致非无返回类型和相应的模式


请注意:生成的代码与生成的yaml完全匹配,因此我在这里没有包含任何这些细节。第一个示例是OpenAPI 3.0,第二个示例是OpenAPI 2.0,因此不同

OpenAPI 3.0中使用的
内容
关键字替代了OpenAPI 2.0中的
消费
/
生产
。在
响应
的上下文中,
内容
表示响应有一个主体,并指定响应主体的媒体类型(JSON/XML/等)和结构

OpenAPI 2.0版本:

昂首阔步:“2.0”
...
路径:
/傅:
获取:
生产:
-应用程序/json
响应:
200:
描述:好的
模式:
$ref:“#/definitions/Pet”
OpenAPI 3.0版本:

openapi:3.0.0
...
路径:
/傅:
获取:
响应:
"200":
描述:好的
内容:
应用程序/json:
模式:
$ref:“#/components/schemas/Pet”
codegen问题可能由以下任何一种情况引起:

  • codegen还不支持OpenAPI 3.0
  • 规范无效(例如,混合使用2.0和3.0关键字)

第一个示例是OpenAPI 3.0,第二个示例是OpenAPI 2.0,因此存在差异

OpenAPI 3.0中使用的
内容
关键字替代了OpenAPI 2.0中的
消费
/
生产
。在
响应
的上下文中,
内容
表示响应有一个主体,并指定响应主体的媒体类型(JSON/XML/等)和结构

OpenAPI 2.0版本:

昂首阔步:“2.0”
...
路径:
/傅:
获取:
生产:
-应用程序/json
响应:
200:
描述:好的
模式:
$ref:“#/definitions/Pet”
OpenAPI 3.0版本:

openapi:3.0.0
...
路径:
/傅:
获取:
响应:
"200":
描述:好的
内容:
应用程序/json:
模式:
$ref:“#/components/schemas/Pet”
codegen问题可能由以下任何一种情况引起:

  • codegen还不支持OpenAPI 3.0
  • 规范无效(例如,混合使用2.0和3.0关键字)

谢谢,我完全错过了。我已经对你的答案投了更高的票,一旦我可以用codegen验证,我会将它标记为正确的。在3.0中删除“products”对我来说似乎更直观,所以我尝试在3.0而不是2.0OpenAPI中这样做。我已经用swagger2openapi将我的swagger规范转换为3.0,但是在3.0中获取/运行codegen时遇到了问题。git似乎支持它,但我没有找到任何预构建的JAR或docker容器来运行。我知道了,但它失败了,似乎正在执行2.0(??
[main]INFO io.swagger.parser.Swagger20Parser-从/input/myspec.openapi3.json[main]读取INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor-找不到swagger-codegen-ignore文件。线程“main”java.lang.RuntimeException中出现异常:缺少swagger输入或配置我建议您在中打开一个问题。谢谢,我完全错过了。我已经对你的答案投了更高的票,一旦我可以用codegen验证,我会将它标记为正确的。在3.0中删除“products”对我来说似乎更直观,所以我尝试在3.0而不是2.0OpenAPI中这样做。我已经用swagger2openapi将我的swagger规范转换为3.0,但是在3.0中获取/运行codegen时遇到了问题。git似乎支持它,但我没有找到任何预构建的JAR或docker容器来运行。我知道了,但它失败了,似乎正在执行2.0(??
[main]INFO io.swagger.parser.Swagger20Parser-从/input/myspec.openapi3.json[main]读取INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor-找不到swagger-codegen-ignore文件。线程“main”java.lang.RuntimeException中出现异常:缺少swagger输入或配置我建议您在中打开一个问题。
"responses" : {
  "200": {
    "description": "a pet to be returned",
    "schema": {
      "$ref": "#/components/schemas/Pet"
} } }
responses:
  200:
    description: "a pet to be returned"
responses:
  200:
    description: "a pet to be returned"
    schema:
      $ref: "#/components/schemas/Pet"