应用执行(ApplicationController)¶
应用执行接口:获取当前用户可见的软件列表(含调试标记、企业域系统模块开关)与单个软件详情。{applicationId} 仅在路径中出现,详情接口源码未单独 DES 解密(按原值传 service.findById)。
- 接口类型:REST 资源(
@Component继承AbstractRuntimeController;类级produces = MediaType.APPLICATION_JSON_VALUE,方法返回类型为Resource,由 Spring Jackson 序列化为 JSON,据源码) - 基址:
${myapps.context-path.runtime:}/api/runtime - Tag:runtime
范围说明:本文档为
cn.myapps.runtime.application.controller.ApplicationController(REST 版,基址/api/runtime)。另有同名移动端 REST 版cn.myapps.runtime.mobile.application.controller.ApplicationController(基址/runtime/app/applications,移动端list.action,返回{status, message, data}JSON),见 mobile-application.md。
公共说明¶
- 鉴权(据源码):类级基址位于
/api/runtime/**,在RestSecurityHandlerInterceptor覆盖范围内,且不在豁免名单(豁免仅覆盖/api/runtime/login.*、/api/runtime/dingding/authlogin、/api/runtime/synchronization.*、URI 以/showjrxml结尾、含/getCustomColumnsInfos、含/accessToken、含/macro、以/clear结尾、含/pages/等,详见 login.md「公共说明 · 鉴权」)。拦截器走Security.getUserIdFromToken(request),未取到再尝试Security.getDebugUserIdFromToken(request),两者皆无则拒绝。故需 accessToken(或 debugToken),可通过 Cookie / 请求头 / query 参数任一方式传递。控制器内getUser()(继承自AbstractRuntimeController)必须能取到非空WebUser。 - 响应结构:本控制器响应使用统一
Resource(见 ../index.md「统一响应结构」)。 - Id 加密:返回前对软件实体的
id/applicationid字段经DesUtil.encryptTextByUserId(..., getUser().getId())加密。
1. 获取软件详情¶
按 applicationId 查询单个软件实体,返回前 clone 一份并对 id/applicationid 字段进行 DES 加密。注意源码未对该端点的 {applicationId} 路径变量做 DES 解密(直接传入 service.findById(applicationId, applicationId)),调用方需传入原始(未加密)软件 Id。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/applications/{applicationId}(完整:{runtime-context}/api/runtime/applications/{applicationId}) - 鉴权:是(需 accessToken,据源码)
- Tag:runtime
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 软件Id(注意:源码未做 DES 解密,传原始 Id) |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:Application(克隆后),id/applicationid 字段已 DES 加密;找不到时为 null。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"id": "__ENC_APPID__",
"applicationid": "__ENC_APPID__",
"name": "OA",
"description": "办公自动化"
},
"errors": null
}
未找到示例:
2. 获取软件列表¶
返回当前前台用户在所有可见软件下的应用列表(仅保留该用户在其中持有角色的软件),并附带:每个软件的调试中标记(JavaScriptFactory.isDebugging)、DES 加密后的 Id;以及当前用户企业域启用的系统模块开关。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/applications(完整:{runtime-context}/api/runtime/applications) - 鉴权:是(需 accessToken,据源码)
- Tag:runtime
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| isStateMenu | query | boolean | 否 | 是否仅返回状态菜单相关标记,默认 false(参数被读取但源码未在过滤逻辑中使用) |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,固定含 applications 字段(List<Application>,每项 id/applicationid 已 DES 加密、含 debugging 调试中标记),并按当前用户企业域 DomainVO.systemModuleConfigs 平铺多个 <systemModuleId>: <enable(boolean)> 键值对。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"applications": [
{
"id": "__ENC_APPID__",
"applicationid": "__ENC_APPID__",
"name": "OA",
"debugging": false
}
],
"__MODULEID_KMS__": true,
"__MODULEID_REPORT__": false
},
"errors": null
}
失败示例: