swagger: "2.0" info: description: Store API V1 title: Store API V1 version: 3.0.0 paths: /cgi-bin/luci/admin/store/token: get: tags: - token summary: 获取csrfToken(用于POST请求) responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreToken" /cgi-bin/luci/admin/store/installed: get: tags: - installed summary: 获取已安装的插件 responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreInstalled" /cgi-bin/luci/admin/store/install: post: tags: - install summary: 安装插件。安装过程中使用taskd接口获取日志 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "package" type: string required: true - in: "query" name: "autoconf" type: string description: "可选参数,表示安装完以后是否自动配置插件" - in: "query" name: "path" type: string description: "可选参数,表示安装完以后是否自动配置插件" - in: "query" name: "enable" type: string description: "可选参数,表示安装完以后是否自动配置插件" responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/autoconf: post: tags: - install summary: 自动配置插件 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "package" type: string required: true - in: "query" name: "path" type: string description: "可选参数" - in: "query" name: "enable" type: string description: "可选参数" responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/remove: post: tags: - remove summary: 卸载插件 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "package" type: string required: true responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/upgrade: post: tags: - upgrade summary: 更新插件 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "package" type: string required: true responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/upload: post: tags: - upload summary: 上传插件 description: "(文件上传表单,支持文件扩展名 .ipk,.run )" consumes: - multipart/form-data parameters: - in: formData name: file type: file description: The file to upload. - in: "query" name: "token" type: string responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/update: post: tags: - update summary: 刷新可用软件列表 parameters: - in: "query" name: "token" type: string required: true responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/status: get: tags: - status summary: 查询特定软件状态 parameters: - in: "query" name: "package" type: string required: true responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreStatus" /cgi-bin/luci/admin/store/log: get: tags: - log summary: 任务日志,已废弃 responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/check_self_upgrade: get: tags: - check_self_upgrade summary: 检查iStore自身更新 responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreCheckSelfUpgrade" /cgi-bin/luci/admin/store/do_self_upgrade: post: tags: - do_self_upgrade summary: 更新iStore自身 parameters: - in: "query" name: "token" type: string required: true responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" /cgi-bin/luci/admin/store/get_block_devices: get: tags: - get_block_devices summary: 枚举块设备 responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreGetBlockDevices" /cgi-bin/luci/admin/store/configured: get: tags: - configured summary: 检查插件是否已经配置过 parameters: - in: "query" name: "uci" type: string required: true description: "要检查的uci配置文件名称" responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreConfigured" /cgi-bin/luci/admin/store/entrysh: post: tags: - entrysh summary: 查询插件运行状态,主要为了获取入口信息。 description: 调用前应该检查meta数据中flags数组包含entrysh,注意如果是安装插件则检查服务器端的flags,如果是调用已安装插件则检查路由器端的flags。 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "package" type: string description: "包名,例如aria2。支持英文逗号分隔多个包名。如果未提供,则返回所有支持entrysh的包" - in: "query" name: "hostname" type: string required: true description: "主机名,不包含端口。前端应该使用location.hostname获取" - in: "query" name: "update" type: integer description: "如果为1则强制更新缓存" responses: "200": description: OK schema: $ref: "#/definitions/ResponseStoreEntrysh" "400": description: Bad Request。hostname不合法 /cgi-bin/luci/admin/store/docker_check_dir: get: tags: - docker_check_dir summary: 检查docker目录是否在系统盘 responses: "200": description: OK schema: $ref: "#/definitions/ResponseDockerCheckDir" /cgi-bin/luci/admin/store/docker_check_migrate: get: tags: - docker_check_migrate summary: 检查docker迁移目标目录是否有效 parameters: - in: "query" name: "path" type: string required: true description: "完整目标路径" responses: "200": description: OK schema: $ref: "#/definitions/ResponseDockerCheckMigrate" /cgi-bin/luci/admin/store/docker_migrate: post: tags: - docker_migrate summary: docker迁移到目标目录,异步 description: 当返回code为0的时候,可以使用taskd接口展示日志,跟安装插件时一样 parameters: - in: "query" name: "token" type: string required: true - in: "query" name: "path" type: string required: true description: "完整目标路径" - in: "query" name: "overwrite" type: string description: "如果docker_check_migrate返回的result是existed,使用此参数指定解决方案:‘true’表示覆盖目标目录;‘chdir’表示只修改路径不复制文件" responses: "200": description: OK schema: $ref: "#/definitions/ResponseStore" definitions: ResponseStoreToken: type: object properties: token: type: string StoreInstalledApp: type: object properties: tutorial: type: string description: "教程" arch: type: array description: "适用的架构平台" items: type: string entry: type: string description: "对于的页面地址" author: type: string description: "作者" depends: type: array description: "关联的依赖" items: type: string time: type: integer description: "更新日期" tags: type: array description: "标签" items: type: string description_en: type: string description: "简介,英文" description: type: string description: "简介,英文" title: type: string description: "标题" release: type: integer description: "发布" website: type: string description: "官网" version: type: string description: "版本号" name: type: string description: "名称" ResponseStoreInstalled: type: array items: $ref: "#/definitions/StoreInstalledApp" ResponseStore: type: object properties: code: type: integer stdout: type: string stderr: type: string ResponseStoreStatus: type: object allOf: - $ref: "#/definitions/StoreInstalledApp" properties: installed: type: boolean ResponseStoreCheckSelfUpgrade: type: object properties: code: type: integer description: "为200时,msg会显示版本号" msg: type: string description: "内容" GetBlockDevice: type: object properties: dev: type: string uuid: type: string version: type: string label: type: string mount: type: string type: type: string size: type: string ResponseStoreGetBlockDevices: type: object properties: code: type: integer description: "为200时" msg: type: string description: "内容" data: type: object additionalProperties: $ref: "#/definitions/GetBlockDevice" ResponseStoreConfigured: type: object properties: code: type: integer description: "为200时" configured: type: boolean ResponseDockerCheckDir: type: object properties: code: type: integer description: "为200时" docker_on_system: type: boolean description: "docker数据在系统盘" ResponseDockerCheckMigrate: type: object properties: code: type: integer description: "为200时" result: type: string description: "检查结果。可能值‘good’,‘bad’,‘existed’" error: type: string description: "当result为bad时,此处返回错误日志" StoreEntrysh: type: object description: "状态和入口信息,不同插件可能有些不一样,仅列出常用公共参数" properties: app: type: string description: "插件名称" docker: type: boolean description: "如果是docker插件" running: type: boolean description: "是否运行中" deployed: type: boolean description: "如果是docker插件且未运行,则是否已经部署" web: type: string description: "url" href: type: string description: "web端直接跳转url" ResponseStoreEntrysh: type: object properties: code: type: integer description: "为200时" status: description: "处理成功的结果集" type: array items: $ref: "#/definitions/StoreEntrysh" errors: description: "处理失败的结果集" type: array items: type: object description: "失败信息" properties: app: type: string description: "插件名称" code: type: integer description: "404或500" msg: type: string description: "错误信息"