跳转至

应用市场(ApplicationMarketController)

应用市场对接:获取云端市场 APP 列表,从 git 仓库克隆并安装 APP 到本地工作空间,以及探测 git 仓库的更新文件数量(用于增量升级提示)。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/designtime(类级 @RequestMapping@Component 继承 AbstractDesignTimeController
  • Tag:设计时-应用市场

公共说明

  • 鉴权:是(需 designerToken)。继承自 AbstractDesignTimeController,鉴权机制详见 index.md「鉴权说明」。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;异常默认 errcode=500errmsg 为异常信息。
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • 外部依赖(据源码)
  • 云市场地址取自 Environment.getYunMarketUrl(),由 HttpUtil.get 拉取 JSON 后透传。
  • git 克隆/抓取由 JGitUtil 完成,默认 clone master 分支。
  • 文件读写通过 VirtualFileSystemUtils / SecurityFile 在工作空间内进行。

1. 获取市场 APP

GET 拉取云端应用市场返回的 JSON(原样透传,包成 JSONObject)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/market(完整:{designer-context}/api/designtime/market
  • 鉴权:是(需 designerToken)
  • Tag:设计时-应用市场

请求参数

无。

请求示例

GET /api/designtime/market HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,云端市场接口返回的原始 JSON 对象。HTTP 状态码固定 200 OK

{
  "errcode": 0,
  "errmsg": "ok",
  "data": { "<市场字段>": "..." },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 安装市场 APP(git 克隆)

gitUrl 从远端 git 仓库克隆 APP,将其 <activated>true</activated> 改写为 false(安装后默认未启用)后写入工作目录,初始化该软件的 url/pid 索引缓存与附件目录(拷贝 database/files/*uploads/item/<appName>/)。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/market/install
  • 鉴权:是(需 designerToken)
  • Tag:设计时-应用市场

请求参数

参数名 位置 类型 必填 说明
gitUrl query string git 仓库地址(结尾须为 <appName>.git,APP 名称取自最后一段路径)

请求示例

POST /api/designtime/market/install?gitUrl=https://git.example.com/oa.application.git HTTP/1.1

响应

datanull(成功)。HTTP 状态码固定 200 OK。安装过程在临时目录 <workspace>/.tmp/<毫秒时间戳>/<appName> 下克隆、改写、再 rename 到工作目录;任一步异常返回 errcode=500

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 获取市场 APP 更新文件数量

gitUrl 定位本地工作目录中已存在的 git 仓库,调用 JGitUtil.doFetchUpdatesCount 抓取远端、统计待更新的提交数。注意:该方法路径名为 updatecount,源码 @Operation summary 误标为「下载GIT市场APP」,实际仅返回更新数量。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/market/fetch/updatecount
  • 鉴权:是(需 designerToken)
  • Tag:设计时-应用市场

请求参数

参数名 位置 类型 必填 说明
gitUrl query string git 仓库地址(用于推算 <appName> 与本地仓库目录 <workspace>/<appName>

请求示例

GET /api/designtime/market/fetch/updatecount?gitUrl=https://git.example.com/oa.application.git HTTP/1.1

响应

dataInteger,待更新的提交数量。HTTP 状态码固定 200 OK

{ "errcode": 0, "errmsg": "ok", "data": 3, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }