Skip to content

Commit 4aa19ef

Browse files
committed
🐛 fix: fix openapi request body problem
1 parent a805932 commit 4aa19ef

File tree

4 files changed

+39
-351
lines changed

4 files changed

+39
-351
lines changed

src/openapi/index.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { OpenAPI, OpenAPIV3_1 } from 'openapi-types';
55
import { pluginApiSchema } from '../schema/manifest';
66
import { LobeChatPluginApi, PluginSchema } from '../types';
77

8+
export const OPENAPI_REQUEST_BODY_KEY = '_requestBody';
9+
810
export 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

Comments
 (0)