OpenAPI/Swagger 如何指定一个字段是可选的还是必填的?
How to specify if a field is optional or required in OpenAPI/Swagger?
我如何在 OpenAPI/Swagger 中定义一个字段是可选的还是必填的,默认值是什么?
默认情况下,模型中的字段是可选的,除非您将它们放在 required
列表中。下面是一个示例 - id
、category
是可选字段,name
是必需的。请注意,required
不是字段的属性,而是对象本身的属性 - 它是必需属性的列表。
type: object
required: # List the required properties here
- name
properties:
id:
type: integer
format: int64
category:
$ref: '#/definitions/Category'
name:
type: string
example: doggie
如果这是请求正文的模型,您可能还需要将正文本身标记为 required
:
# swagger: '2.0'
parameters:
- in: body
name: body
required: true # <----
schema:
$ref: '#/definitions/Pet'
# openapi: 3.x.x
requestBody:
required: true # <----
content:
...
要指定可选字段的默认值,您可以使用 default
属性。这是一个例子:
type: object
properties:
huntingSkill:
type: string
description: The measured skill for hunting
default: lazy
除非标记为必填,否则字段是可选的。
您像这样列出必填字段:
SomeObject:
type: object
required:
- name
- fartingPower
properties:
name:
type: string
fartingPower:
type: integer
另一种语法:
Response:
type: object
required: [id, title]
properties:
id:
type: string
title:
type: string
我如何在 OpenAPI/Swagger 中定义一个字段是可选的还是必填的,默认值是什么?
默认情况下,模型中的字段是可选的,除非您将它们放在 required
列表中。下面是一个示例 - id
、category
是可选字段,name
是必需的。请注意,required
不是字段的属性,而是对象本身的属性 - 它是必需属性的列表。
type: object
required: # List the required properties here
- name
properties:
id:
type: integer
format: int64
category:
$ref: '#/definitions/Category'
name:
type: string
example: doggie
如果这是请求正文的模型,您可能还需要将正文本身标记为 required
:
# swagger: '2.0'
parameters:
- in: body
name: body
required: true # <----
schema:
$ref: '#/definitions/Pet'
# openapi: 3.x.x
requestBody:
required: true # <----
content:
...
要指定可选字段的默认值,您可以使用 default
属性。这是一个例子:
type: object
properties:
huntingSkill:
type: string
description: The measured skill for hunting
default: lazy
除非标记为必填,否则字段是可选的。
您像这样列出必填字段:
SomeObject:
type: object
required:
- name
- fartingPower
properties:
name:
type: string
fartingPower:
type: integer
另一种语法:
Response:
type: object
required: [id, title]
properties:
id:
type: string
title:
type: string