Skip to content

Commit

Permalink
🐛 fix: fix openapi request body problem
Browse files Browse the repository at this point in the history
  • Loading branch information
arvinxx committed Dec 15, 2023
1 parent a805932 commit 4aa19ef
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 351 deletions.
19 changes: 13 additions & 6 deletions src/openapi/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import { OpenAPI, OpenAPIV3_1 } from 'openapi-types';
import { pluginApiSchema } from '../schema/manifest';
import { LobeChatPluginApi, PluginSchema } from '../types';

export const OPENAPI_REQUEST_BODY_KEY = '_requestBody';

export class OpenAPIConvertor {
private readonly openapi: object;
constructor(openapi: object) {
Expand All @@ -26,10 +28,13 @@ export class OpenAPIConvertor {
const parametersSchema = convertParametersToJSONSchema(operation.parameters || []);
const requestBodySchema = this.convertRequestBodyToSchema(operation.requestBody);

const parameters = this.mergeSchemas(
...Object.values(parametersSchema),
requestBodySchema,
);
const parameters = this.mergeSchemas(...Object.values(parametersSchema));

if (requestBodySchema && Object.keys(requestBodySchema.properties).length > 0) {
console.log(requestBodySchema);
parameters.properties[OPENAPI_REQUEST_BODY_KEY] = requestBodySchema;
parameters.required?.push('_requestBody');
}

// 保留原始逻辑作为备选
const name = operation.operationId || `${method.toUpperCase()} ${path}`;
Expand Down Expand Up @@ -150,7 +155,9 @@ export class OpenAPIConvertor {
return settingsSchema;
};

private convertRequestBodyToSchema(requestBody: OpenAPIV3_1.RequestBodyObject) {
private convertRequestBodyToSchema(
requestBody: OpenAPIV3_1.RequestBodyObject,
): PluginSchema | null {
if (!requestBody || !requestBody.content) {
return null;
}
Expand Down Expand Up @@ -186,7 +193,7 @@ export class OpenAPIConvertor {
}
}

return requestBodySchema;
return requestBodySchema as PluginSchema;
}

private mergeSchemas(...schemas: any[]) {
Expand Down
Loading

0 comments on commit 4aa19ef

Please sign in to comment.