应用市场(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=500,errmsg为异常信息。 - HTTP 方法:受
CommonSecurityFilter限制,仅允许GET/POST/HEAD/OPTIONS。 - 外部依赖(据源码):
- 云市场地址取自
Environment.getYunMarketUrl(),由HttpUtil.get拉取 JSON 后透传。 - git 克隆/抓取由
JGitUtil完成,默认 clonemaster分支。 - 文件读写通过
VirtualFileSystemUtils/SecurityFile在工作空间内进行。
1. 获取市场 APP¶
GET 拉取云端应用市场返回的 JSON(原样透传,包成 JSONObject)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/market(完整:{designer-context}/api/designtime/market) - 鉴权:是(需 designerToken)
- Tag:设计时-应用市场
请求参数¶
无。
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,云端市场接口返回的原始 JSON 对象。HTTP 状态码固定 200 OK。
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 名称取自最后一段路径) |
请求示例¶
响应¶
data:null(成功)。HTTP 状态码固定 200 OK。安装过程在临时目录 <workspace>/.tmp/<毫秒时间戳>/<appName> 下克隆、改写、再 rename 到工作目录;任一步异常返回 errcode=500。
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
响应¶
data:Integer,待更新的提交数量。HTTP 状态码固定 200 OK。