@@ -5,6 +5,8 @@ import { OpenAPI, OpenAPIV3_1 } from 'openapi-types';
55import { pluginApiSchema } from '../schema/manifest' ;
66import { LobeChatPluginApi , PluginSchema } from '../types' ;
77
8+ export const OPENAPI_REQUEST_BODY_KEY = '_requestBody' ;
9+
810export class OpenAPIConvertor {
911 private readonly openapi : object ;
1012 constructor ( openapi : object ) {
@@ -26,10 +28,13 @@ export class OpenAPIConvertor {
2628 const parametersSchema = convertParametersToJSONSchema ( operation . parameters || [ ] ) ;
2729 const requestBodySchema = this . convertRequestBodyToSchema ( operation . requestBody ) ;
2830
29- const parameters = this . mergeSchemas (
30- ...Object . values ( parametersSchema ) ,
31- requestBodySchema ,
32- ) ;
31+ const parameters = this . mergeSchemas ( ...Object . values ( parametersSchema ) ) ;
32+
33+ if ( requestBodySchema && Object . keys ( requestBodySchema . properties ) . length > 0 ) {
34+ console . log ( requestBodySchema ) ;
35+ parameters . properties [ OPENAPI_REQUEST_BODY_KEY ] = requestBodySchema ;
36+ parameters . required ?. push ( '_requestBody' ) ;
37+ }
3338
3439 // 保留原始逻辑作为备选
3540 const name = operation . operationId || `${ method . toUpperCase ( ) } ${ path } ` ;
@@ -150,7 +155,9 @@ export class OpenAPIConvertor {
150155 return settingsSchema ;
151156 } ;
152157
153- private convertRequestBodyToSchema ( requestBody : OpenAPIV3_1 . RequestBodyObject ) {
158+ private convertRequestBodyToSchema (
159+ requestBody : OpenAPIV3_1 . RequestBodyObject ,
160+ ) : PluginSchema | null {
154161 if ( ! requestBody || ! requestBody . content ) {
155162 return null ;
156163 }
@@ -186,7 +193,7 @@ export class OpenAPIConvertor {
186193 }
187194 }
188195
189- return requestBodySchema ;
196+ return requestBodySchema as PluginSchema ;
190197 }
191198
192199 private mergeSchemas ( ...schemas : any [ ] ) {
0 commit comments