模型表单-YAML文件中使用Swagger 2.0的数据体请求 [英] Model form-data body request using Swagger 2.0 in yaml file
本文介绍了模型表单-YAML文件中使用Swagger 2.0的数据体请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是swagger 2.0,我有一个终结点,它使用表单数据作为请求的有效负载,我在几个地方使用相同的表单数据主体请求,我不想一次又一次地编写它(复制它),我不知道如何在我的YAML文件中对其建模(当对象作为请求主体的一部分作为有效负载时,我知道如何对其建模)。
这是我尝试建模的表单数据有效负载:
我查看了Swagger的文档:https://swagger.io/docs/specification/2-0/file-upload/
并尝试执行相同的操作,但收到如下错误:
我不想复制相同的值(如果我这样做了,它会起作用,但解决方案不会很好)。
推荐答案
在OpenAPI2.0中,您只能重用单个表单域/参数的定义。无法重复使用一组字段/参数。
swagger: '2.0'
parameters:
name:
in: formData
name: name
type: string
upfile1:
in: formData
name: upfile1
type: file
...
paths:
/foo:
post:
consumes:
- multipart/form-data
parameters:
- $ref: '#/parameters/name'
- $ref: '#/parameters/upfile1'
- ...
/bar:
post:
consumes:
- multipart/form-data
parameters:
- $ref: '#/parameters/name'
- $ref: '#/parameters/upfile1'
- ...
要重用整个请求体定义,您需要OpenAPI 3.0。在OAS 3中,请求主体可以在全局components/requestBodies
部分中定义,并使用$ref
引用:
openapi: 3.0.0
paths:
/foo:
post:
requestBody:
$ref: '#/components/requestBodies/statusMode'
responses:
...
/bar:
post:
requestBody:
$ref: '#/components/requestBodies/statusMode'
responses:
...
components:
requestBodies:
statusMode:
required: true
content:
multipart/form-data:
schema:
type: object
# The properties correspond to individual form fields
properties:
name:
type: string
upfile1:
type: string
format: binary
这篇关于模型表单-YAML文件中使用Swagger 2.0的数据体请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文