openapi: '3.0.3' info: title: zzyxyz_vfs_api description: 虚拟文件系统API服务 version: '1.0' servers: - url: http://localhost:8080/api description: 开发环境 - url: https://api.zzyxyz.com/api description: 生产环境 tags: - name: vfs description: 虚拟文件系统相关操作 security: - ApiKeyAuth: [] paths: /vfs/v1/files/{path}: parameters: - name: path in: path required: true description: 文件系统路径,例如 "documents/readme.txt" 或 "services/mysql.service" 或 "folder/" schema: type: string example: "readme.txt" get: summary: 读取文件或列出目录 description: 获取指定路径的文件内容或目录列表 operationId: getVFSNode tags: [vfs] parameters: - name: op in: query required: false description: 操作类型, list表示列出目录内容, 不指定则读取文件内容 schema: type: string enum: [list] responses: '200': description: 文件内容或目录列表 content: application/json: schema: oneOf: - type: string description: 文件内容 - type: array items: $ref: '#/components/schemas/VFSDirectoryEntry' description: 目录条目列表 '404': description: 路径不存在 content: application/json: schema: $ref: '#/components/schemas/Error' '500': $ref: '#/components/responses/ServerInternalError' post: summary: 创建文件或目录 description: 创建文件或目录 operationId: createVFSNode tags: [vfs] requestBody: required: true content: application/json: schema: type: string description: 文件内容(仅当type为file时有效) responses: '201': description: 创建成功 '400': description: 请求参数错误 content: application/json: schema: $ref: '#/components/schemas/Error' '500': $ref: '#/components/responses/ServerInternalError' put: summary: 修改文件或修改目录 description: 修改/移动/重命名 已存在的 文件/目录 operationId: updateVFSNode tags: [vfs] requestBody: required: true content: application/json: schema: type: object properties: new_name: type: string description: 新名称(用于重命名) new_path: type: string description: 新路径(用于移动) content: type: string description: 新内容(用于修改文件内容) anyOf: - required: [new_name] - required: [new_path] - required: [content] responses: '200': description: 操作成功 '400': description: 请求参数错误 content: application/json: schema: $ref: '#/components/schemas/Error' '500': $ref: '#/components/responses/ServerInternalError' delete: summary: 删除文件或目录 description: 删除指定路径的文件或目录 operationId: deleteVFSNode tags: [vfs] responses: '204': description: 删除成功 '404': description: 路径不存在 content: application/json: schema: $ref: '#/components/schemas/Error' '500': $ref: '#/components/responses/ServerInternalError' components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-VFS-Token responses: ServerInternalError: description: 服务器内部错误 content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: 未授权 content: application/json: schema: $ref: '#/components/schemas/Error' schemas: VFSDirectoryEntry: type: object properties: name: type: string description: 条目名称 type: type: string enum: [file, directory, service] description: 条目类型 modified: type: string format: date-time description: 修改时间 permissions: type: string description: 权限信息,如 "rw" required: - name - type - modified Error: type: object description: 错误信息 properties: errtype: type: string example: "ParameterError" description: 错误类型 message: example: "传递的第一个参数错误" type: string description: 错误信息 required: - errtype - message