coze-dev / coze-dev/coze-studio

plugin导入openapi格式json,确认环节报错: invalid plugin openapi3 document : invalid components: schema "DocumentContent": extra sibling fields: [has schema]

Open
#2,291 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
21.6k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**

plugin导入openapi格式json确认环节报错 invalid plugin openapi3 document : invalid components: schema "DocumentContent": extra sibling fields: [has schema]。

完全相同的json,coze平台非开源的就可以导入成功。

**To Reproduce**

插件-新建-导入-复制json文本:

{"openapi":"3.0.0","info":{"title":"工作流插件集合 API","description":"工作流插件集合 API 支持 Coze、n8n、Dify 等平台的工作流插件集合 API,提供统一的接口来管理各种工作流工具。主要功能 1-📋 插件管理 2-📄 飞书文档插件 3-📊 飞书表格插件 认证方式所有 API 请求都需要包含有效的 API Key:Authorization: Bearer your-api-key","version":"1.0.0"},"paths":{"/health/":{"get":{"tags":["健康检查"],"summary":"Health Check","description":"健康检查","operationId":"health_check","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckResponseSchema"}}}}}}},"/api/feishu_docs/create":{"post":{"tags":["飞书文档"],"summary":"Create Document","description":"创建文档","operationId":"create_document","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentCreateResponseSchema"}}}}}}},"/api/feishu_docs/get-info":{"get":{"tags":["飞书文档"],"summary":"Get Document Info","description":"获取文档信息","operationId":"get_document_info","parameters":[{"name":"document_id","in":"query","required":true,"schema":{"type":"string","description":"文档ID","title":"Document Id"},"description":"文档ID"},{"name":"use_cache","in":"query","required":false,"schema":{"type":"boolean","description":"是否使用缓存","default":true,"title":"Use Cache"},"description":"是否使用缓存"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentGetInfoResponseSchema"}}}}}}},"/api/feishu_docs/get-content":{"get":{"tags":["飞书文档"],"summary":"Get Document Content","description":"获取文档内容","operationId":"get_document_content","parameters":[{"name":"document_id","in":"query","required":true,"schema":{"type":"string","description":"文档ID","title":"Document Id"},"description":"文档ID"},{"name":"use_cache","in":"query","required":false,"schema":{"type":"boolean","description":"是否使用缓存","default":true,"title":"Use Cache"},"description":"是否使用缓存"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentGetContentResponseSchema"}}}}}}},"/api/feishu_docs/update-content":{"post":{"tags":["飞书文档"],"summary":"Update Document","description":"更新文档内容","operationId":"update_document_content","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUpdateResponseSchema"}}}}}}}},"components":{"schemas":{"Body_exists_kv_api_kvstore_exists_post":{"properties":{"key":{"type":"string","title":"Key","description":"键名"},"namespace":{"type":"string","title":"Namespace","description":"命名空间","default":"default"}},"type":"object","required":["key"],"title":"Body_exists_kv_api_kvstore_exists_post"},"DocumentContent":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档 ID"},"content":{"type":"string","title":"Content","description":"文档内容"},"revision":{"type":"integer","title":"Revision","description":"版本号","default":0},"content_type":{"type":"string","title":"Content Type","description":"内容类型","default":"text/plain"},"update_time":{"type":"string","format":"date-time","title":"Update Time","description":"更新时间"}},"additionalProperties":false,"type":"object","required":["document_id","content"],"title":"DocumentContent","description":"文档内容模型"},"DocumentCopyResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentInfo"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentCopyResponseSchema","description":"复制文档响应"},"DocumentCreateRequest":{"properties":{"title":{"type":"string","maxLength":100,"minLength":1,"title":"Title","description":"文档标题"},"content":{"type":"string","title":"Content","description":"文档内容","default":""},"folder_token":{"type":"string","title":"Folder Token","description":"文件夹令牌","default":""},"type":{"type":"string","title":"Type","description":"文档类型","default":"docx"}},"additionalProperties":false,"type":"object","required":["title"],"title":"DocumentCreateRequest","description":"创建文档请求"},"DocumentCreateResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentInfo"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentCreateResponseSchema","description":"创建文档响应"},"DocumentDeleteResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentOperationResultSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentDeleteResponseSchema","description":"删除文档响应"},"DocumentGetContentResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentContent"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentGetContentResponseSchema","description":"获取文档内容响应"},"DocumentGetInfoResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentInfo"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentGetInfoResponseSchema","description":"获取文档信息响应"},"DocumentInfo":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档 ID"},"title":{"type":"string","title":"Title","description":"文档标题"},"type":{"type":"string","title":"Type","description":"文档类型","default":"docx"},"owner":{"type":"string","title":"Owner","description":"文档所有者","default":""},"create_time":{"type":"string","format":"date-time","title":"Create Time","description":"创建时间"},"edit_time":{"type":"string","format":"date-time","title":"Edit Time","description":"编辑时间"},"folder_token":{"type":"string","title":"Folder Token","description":"文件夹令牌","default":""},"parent_node_token":{"type":"string","title":"Parent Node Token","description":"父节点令牌","default":""},"obj_token":{"type":"string","title":"Obj Token","description":"对象令牌","default":""}},"additionalProperties":false,"type":"object","required":["document_id","title"],"title":"DocumentInfo","description":"文档信息模型"},"DocumentListDataSchema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DocumentListItemSchema"},"type":"array","title":"Items","description":"文档列表"},"total":{"type":"integer","title":"Total","description":"总数量"},"page":{"type":"integer","title":"Page","description":"当前页码"},"size":{"type":"integer","title":"Size","description":"每页大小"},"has_more":{"type":"boolean","title":"Has More","description":"是否有更多"},"page_token":{"type":"string","title":"Page Token","description":"下一页令牌","default":""}},"type":"object","required":["items","total","page","size","has_more"],"title":"DocumentListDataSchema","description":"文档列表数据模型"},"DocumentListItemSchema":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档ID"},"title":{"type":"string","title":"Title","description":"文档标题"},"type":{"type":"string","title":"Type","description":"文档类型"},"owner":{"type":"string","title":"Owner","description":"文档所有者"},"create_time":{"type":"string","format":"date-time","title":"Create Time","description":"创建时间"},"edit_time":{"type":"string","format":"date-time","title":"Edit Time","description":"编辑时间"},"folder_token":{"type":"string","title":"Folder Token","description":"文件夹令牌","default":""}},"type":"object","required":["document_id","title","type","owner","create_time","edit_time"],"title":"DocumentListItemSchema","description":"文档列表项模型"},"DocumentListResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentListDataSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentListResponseSchema","description":"文档列表响应"},"DocumentMoveResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentInfo"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentMoveResponseSchema","description":"移动文档响应"},"DocumentOperationResultSchema":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档ID"},"success":{"type":"boolean","title":"Success","description":"是否成功"},"operation":{"type":"string","title":"Operation","description":"操作类型"},"message":{"type":"string","title":"Message","description":"操作消息"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"操作时间"}},"type":"object","required":["document_id","success","operation","message","timestamp"],"title":"DocumentOperationResultSchema","description":"文档操作结果模型"},"DocumentSearchDataSchema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SearchResultItemSchema"},"type":"array","title":"Items","description":"搜索结果"},"total":{"type":"integer","title":"Total","description":"总数量"},"query":{"type":"string","title":"Query","description":"搜索关键词"},"page_size":{"type":"integer","title":"Page Size","description":"页面大小"},"page_token":{"type":"string","title":"Page Token","description":"下一页令牌","default":""},"has_more":{"type":"boolean","title":"Has More","description":"是否有更多"}},"type":"object","required":["items","total","query","page_size","has_more"],"title":"DocumentSearchDataSchema","description":"文档搜索数据模型"},"DocumentSearchResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentSearchDataSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentSearchResponseSchema","description":"文档搜索响应"},"DocumentUpdateDataSchema":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档ID"},"revision":{"type":"integer","title":"Revision","description":"版本号"},"update_time":{"type":"string","format":"date-time","title":"Update Time","description":"更新时间"}},"type":"object","required":["document_id","revision","update_time"],"title":"DocumentUpdateDataSchema","description":"文档更新数据模型"},"DocumentUpdateRequest":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档 ID"},"content":{"type":"string","minLength":1,"title":"Content","description":"文档内容"},"revision":{"type":"integer","title":"Revision","description":"版本号","default":0}},"additionalProperties":false,"type":"object","required":["document_id","content"],"title":"DocumentUpdateRequest","description":"更新文档请求"},"DocumentUpdateResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/DocumentUpdateDataSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"DocumentUpdateResponseSchema","description":"更新文档响应"},"HealthCheckDataSchema":{"properties":{"status":{"type":"string","title":"Status","description":"服务状态"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"检查时间"},"services":{"items":{"$ref":"#/components/schemas/ServiceStatus"},"type":"array","title":"Services","description":"服务状态","default":[]}},"type":"object","required":["status","timestamp"],"title":"HealthCheckDataSchema","description":"健康检查数据模型"},"HealthCheckResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/HealthCheckDataSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","required":["data"],"title":"HealthCheckResponseSchema","description":"健康检查响应模型"},"PluginInfoSchema":{"properties":{"name":{"type":"string","title":"Name","description":"插件名称"},"version":{"type":"string","title":"Version","description":"插件版本"},"enabled":{"type":"boolean","title":"Enabled","description":"是否启用"},"routes":{"items":{"type":"string"},"type":"array","title":"Routes","description":"路由列表"},"description":{"type":"string","title":"Description","description":"插件描述"}},"type":"object","required":["name","version","enabled","description"],"title":"PluginInfoSchema","description":"插件信息模型"},"PluginListResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"items":{"$ref":"#/components/schemas/PluginInfoSchema"},"type":"array","title":"Data","description":"插件列表"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","title":"PluginListResponseSchema","description":"插件列表响应模型"},"PluginStatusDataSchema":{"properties":{"total":{"type":"integer","minimum":0.0,"title":"Total","description":"总插件数"},"enabled":{"type":"integer","minimum":0.0,"title":"Enabled","description":"启用插件数"},"disabled":{"type":"integer","minimum":0.0,"title":"Disabled","description":"禁用插件数"},"plugins":{"items":{"$ref":"#/components/schemas/PluginInfoSchema"},"type":"array","title":"Plugins","description":"插件列表"}},"type":"object","required":["total","enabled","disabled"],"title":"PluginStatusDataSchema","description":"插件状态数据模型"},"PluginStatusResponseSchema":{"properties":{"success":{"type":"boolean","title":"Success","description":"是否成功","default":true},"code":{"type":"integer","title":"Code","description":"响应码","default":200},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"$ref":"#/components/schemas/PluginStatusDataSchema"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"时间戳"}},"type":"object","required":["data"],"title":"PluginStatusResponseSchema","description":"插件状态响应模型"},"SearchResultItemSchema":{"properties":{"document_id":{"type":"string","title":"Document Id","description":"文档ID"},"title":{"type":"string","title":"Title","description":"文档标题"},"type":{"type":"string","title":"Type","description":"文档类型"},"owner":{"type":"string","title":"Owner","description":"文档所有者"},"snippet":{"type":"string","title":"Snippet","description":"内容片段","default":""},"create_time":{"type":"string","format":"date-time","title":"Create Time","description":"创建时间"},"edit_time":{"type":"string","format":"date-time","title":"Edit Time","description":"编辑时间"}},"type":"object","required":["document_id","title","type","owner","create_time","edit_time"],"title":"SearchResultItemSchema","description":"搜索结果项模型"},"ServiceStatus":{"properties":{"name":{"type":"string","title":"Name","description":"服务名称"},"status":{"type":"string","title":"Status","description":"服务状态"},"response_time":{"type":"number","title":"Response Time","description":"响应时间","default":0.0},"last_check":{"type":"string","format":"date-time","title":"Last Check","description":"最后检查时间"},"error_message":{"type":"string","title":"Error Message","description":"错误信息","default":""}},"type":"object","required":["name","status","last_check"],"title":"ServiceStatus","description":"服务状态模型"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API密钥认证"}}},"servers":[{"url":"https://domain.com","description":"development服务器"}],"security":[{"ApiKeyAuth":[]}]}

**Expected behavior**

期待导入成功,coze官方平台就可以导入成功,说明json本身没问题,这个就是fastapi框架导出的直接不是手动拼的不太会有问题。
**Screenshots**

以下分别是开源版导入失败、coze官方平台导入成功的截图。

Image

Image

If applicable, add screenshots to help explain your problem.

**Version:**

Please provide the version of {project_name} you are using.

**Environment:**

The output of `go env`.

**Additional context**

Add any other context about the problem here.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.