是否可以为基本类型定义一个swagger定义/模型?例如,请考虑以下
definitions:
program_name:
type: string
description: Unique string id
但是,上面的示例返回了许多错误(例如,swagger期望properties
字段)并且没有示例使用任何非type: object
的定义。
目的是将其用作另一个模型的子组件以及参数 - 以某种方式重用已定义的组件。
将此视为一个招摇的typedef
编辑:根据规范,定义对象与架构对象http://swagger.io/specification/#schemaObject相同,后者声明它可以接受基本类型。
另外,假设定义部分中可以存在原始类型,可以使用简单的参数类型(查询,路径等)来引用原语定义类型吗?
答案 0 :(得分:0)
示例中的基本模式是有效的,并且可以在需要Schema对象时使用,例如,作为另一个模式的子组件:
definitions:
Program:
type: object
properties:
program_name:
$ref: "#/definitions/program_name"
# This becomes:
# type: object
# properties:
# program_name:
# type: string
# description: Unique string id
或作为操作体参数或响应模式:
paths:
/something:
post:
summary: POSTs and returns a string
parameters:
- in: body
name: program_name
schema:
$ref: "#/definitions/program_name"
responses:
"200":
description: OK
schema:
$ref: "#/definitions/program_name"
但是,简单的参数 - 路径,查询,标题和表单 - 不使用schema
关键字(而是使用type
),因此他们无法引用definitions
中的模式。< / p>
这将在下一个版本OpenAPI 3.0中进行更改,其中schema
将用于all parameter types。