@@ -148,13 +148,24 @@ function migGeneralParameter(parameter: OpenAPIV2.GeneralParameterObject | OpenA
148148 } ;
149149}
150150
151- function makeRequestBody ( bodySchema : BodySchema [ ] , medias : string [ ] ) : OpenAPIV3 . RequestBodyObject {
151+ function makeRequestBody ( bodySchemas : BodySchema [ ] , medias : string [ ] ) : OpenAPIV3 . RequestBodyObject {
152152 let requestBodySchema : OpenAPIV3 . SchemaObject | OpenAPIV3 . ReferenceObject | undefined ;
153+ const bodyRequest = bodySchemas . find ( ( { parameter } ) => parameter . in === 'body' ) ;
154+ const requestBodyRest = { } ;
153155
154- if ( bodySchema . length > 0 ) {
156+ // @ref https://swagger.io/docs/specification/v2_0/describing-request-body/
157+ // requestBodySchema.name 忽略,其本身作为 body
158+ if ( bodyRequest ) {
159+ requestBodySchema = bodyRequest . schema ;
160+ const { required, description } = bodyRequest . parameter ;
161+ Object . assign ( requestBodyRest , { required, description } ) ;
162+ }
163+ // @ref https://swagger.io/docs/specification/v2_0/file-upload/
164+ // 其余内容为 form-data
165+ else if ( bodySchemas . length > 0 ) {
155166 requestBodySchema = {
156167 type : 'object' ,
157- properties : bodySchema . reduce (
168+ properties : bodySchemas . reduce (
158169 ( properties , { parameter, schema } ) => {
159170 const { required, default : default_ , description } = parameter ;
160171 properties [ parameter . name ] = {
@@ -171,6 +182,7 @@ function makeRequestBody(bodySchema: BodySchema[], medias: string[]): OpenAPIV3.
171182 }
172183
173184 return {
185+ ...requestBodyRest ,
174186 content : requestBodySchema
175187 ? medias . reduce (
176188 ( content , media ) => {
0 commit comments