插件清单是插件唯一的配置文件:作者声明标识、路由与程序,使用者只改配置项的值。清单采用单一文件设计,原双文件方案已废弃合并,改配置即改清单里的值,保存后随热更新生效,不需要登录后台。
顶层字段包括标识、名称、版本、协议版本、启用、描述与作者。标识必须等于目录名且符合命名规则;名称有长度上限;版本遵循三段式;协议版本当前为整数一,不匹配的插件会被跳过并记录日志;启用字段可以临时停用插件而不删目录。路由条数与参数数量都有上限校验,程序段在处理方式为程序时必需。
每条路由声明路径、方法、处理方式与处理相关配置。路径必须以斜杠开头且仅含小写字母、数字与点、斜杠、连字符,当前版本只做精确匹配;方法支持常见的七种请求方法并自动转大写;处理方式为声明式或程序,声明式必须给出响应段,程序方式可以有超时、上传与传输声明。
保留路径与保留字约束同样作用在路由声明上:路径不得以接口前缀、后台前缀与插件静态资源前缀等保留路径开头,路径首段也不得命中 CMS 的保留字集合,声明时按这两条检查即可避免加载期被丢弃。
| 字段 | 作用 |
|---|---|
| 路径与方法 | 请求匹配条件,精确匹配 |
| 处理 | 声明式或程序 |
| 超时秒 | 请求超时,从正文读取完成后起算 |
| 传输 | 正文通道选择:自动、内存或落盘 |
程序段描述如何启动插件进程:命令与入口二选一,入口写法按扩展名推断解释器;参数传给启动命令;工作目录默认插件目录;环境变量按键名排序注入;实例数决定并发上限,排队上限决定等待队列长度,关闭超时与最大重启次数控制生命周期,弹性实例上限开启按负载伸缩。
解释器推断是入口写法的便利机制:按扩展名映射到常见解释器与启动参数,推断失败或解释器不存在时内核给出明确错误日志。显式写命令是主路径,推断只在命令缺省时启用,两种写法在效果上完全等价。
配置项由作者声明键、类型、默认值与描述,使用者填写值。类型支持字符串、整数、浮点、布尔、JSON 与长文本六种;值的类型与声明不一致时回退默认值并记录日志,不中断插件运行。字符串与长文本类型不能显式设为空串,留空即使用默认值,这一设计避免了空值与未配置的语义混淆。
配置值的读取有两种渠道:声明的键与值会序列化成 JSON 注入插件进程的环境变量,插件读取后解析即可使用;声明式路由则在响应内容里按插值语法引用同一个键,两种渠道读取的是同一份值。
插件清单的值改完后随热更新节拍生效,无需重启程序;若整体替换清单文件,使用者填过的值会被作者声明的默认值覆盖,因此升级时应当只替换程序文件,或者在替换后重新填写配置值。
原双文件方案中的独立配置文件已废弃,内核不再读取;如果插件目录里还残留旧文件,把其中的值搬进清单后删除即可。加载校验的容错策略贯穿全流程——任何一步失败只影响这一个插件或这条路由,通过跳过并记录日志的方式处理,绝不让主程序无法启动。
评论
加载中...