是否有其他地方可以将可重用组件放在components/schema
之外?
我有一个"部分" (因为缺乏更好的术语)我想在其他地方$ref
,但我不想作为"模型":
一些例子:
NotFoundError:
type: object
properties:
code:
type: integer
format: int32
example: 404
message:
type: string
example: "Resource Not Found"
ID-Array:
type: array
items:
$ref: '#/components/schemas/ID'
writeOnly: true
ID:
type: integer
format: int32
example: 1
ID-ReadOnly:
allOf:
- $ref: '#/components/schemas/ID'
- readOnly: true
ID-WriteOnly:
allOf:
- $ref: '#/components/schemas/ID'
- writeOnly: true
答案 0 :(得分:1)
一种可能的解决方案是将部分放在某些extension key之下,比如x-partials
,并相应地更改$ref
。只要目标处于预期格式,$ref
就不关心路径是什么。
x-partials:
ID:
type: integer
format: int32
example: 1
components:
schemas:
ID-Array:
type: array
items:
$ref: '#/x-partials/ID'
writeOnly: true
ID-ReadOnly:
allOf:
- $ref: '#/x-partials/ID'
- readOnly: true
ID-WriteOnly:
allOf:
- $ref: '#/x-partials/ID'
- writeOnly: true
这种方式,例如,部分内容不会出现在"模型" Swagger UI部分。