跳转至

设计时多语言管理(MulitLanguageController)

多语言设计时资源管理:多语言条目的增删改查、批量删除,按 .xls/.xlsx 文件导入多语言,以及重新加载全局语言属性缓存。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/designtime/applications(类级 @RequestMappingproduces = APPLICATION_JSON_VALUE
  • Tag:多语言模块

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 Security.getDesignerIdFromToken(request) 从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{mulitlangId} 均为**明文设计时 ID**(与 designer 其他控制器一致,非 runtime 的 DES 加密密文)。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;异常默认 errcode=500errmsg 为异常信息;导入文件格式不符时返回 errcode=4001
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • 请求体约定:POST/PUT 接收原始 JSON 字符串(@RequestBody String content),由服务端用 JSONObject.fromObject 解析;DELETE 接收 JSON 字符串数组(@RequestBody String[])。

1. 获取多语言列表

分页获取指定应用下的多语言条目列表,可按标签(label)、文本(text)、类型(type)过滤。服务端先全量查询再在内存中过滤与分页。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/mulitlangs(完整:{designer-context}/api/designtime/applications/{applicationId}/mulitlangs
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
pageNo query string 页码(缺省 1
linesPerPage query string 每页条数(缺省 10
label query string 按标签关键字过滤(包含匹配)
text query string 按文本关键字过滤(包含匹配)
type query int 按类型精确过滤(缺省 0=不过滤)

说明:pageNo/linesPerPage/label/text 形参未标注 @RequestParam,由 Spring MVC 按请求参数绑定,故可缺省。type 标注 required = false,缺省 0

请求示例

GET /api/designtime/applications/{applicationId}/mulitlangs?pageNo=1&linesPerPage=10&label=&text=&type=0 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 data:分页 Map,含字段 linesPerPagepageCountpageNorowCountdataList<MultiLanguage>,当起始下标越界时为 null)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 10,
    "pageNo": 1,
    "pageCount": 1,
    "rowCount": 5,
    "data": [
      { "id": "...", "label": "...", "text": "...", "type": 1, "applicationid": "..." }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 获取多语言详情

按多语言Id获取完整多语言对象。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/mulitlangs/{mulitlangId}
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
mulitlangId path string 多语言Id

响应

dataMultiLanguage 完整对象。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "label": "...", "text": "...", "type": 1, "...": "..." }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 新建多语言

在指定应用下新建多语言条目。将 text 同步为 name,缺省 id 时生成新设计时序列号;保存后写入 MultiLanguageProperty 全局缓存。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/mulitlangs
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) 多语言对象 JSON

请求体

对应 MultiLanguage 对象 JSON(含 labeltexttypelanguage 等)。

响应

dataJSONObject,仅含 id(新建多语言Id)。

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


4. 更新多语言

按多语言Id更新多语言对象(以路径变量 mulitlangId 覆盖 id,text 同步为 name);保存后刷新 MultiLanguageProperty 缓存。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/mulitlangs/{mulitlangId}
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
mulitlangId path string 多语言Id
content body string(JSON) 多语言对象 JSON

响应

datanull(成功)。

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


5. 删除多语言(可批量)

按多语言Id数组批量删除多语言条目(含逐条路径信息收集)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{applicationId}/mulitlangs
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
ids body string 多语言Id字符串数组

请求体

["<mulitlangId1>", "<mulitlangId2>"]

响应

dataString,固定为 "删除成功"

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


6. 重新加载语言属性

触发 MultiLanguageProperty.init(),重新加载全局多语言属性缓存。该端点路径下不含 {applicationId} 段。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/reloadLanguage(完整:{designer-context}/api/designtime/applications/reloadLanguage
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

无。

请求示例

GET /api/designtime/applications/reloadLanguage HTTP/1.1

响应

dataString,固定为 "加载成功"

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


7. 导入多语言

按服务器端 Excel 文件路径导入多语言条目。path 必须以 .xls.xlsx 结尾,否则返回 errcode=4001

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/mulitlangs/import
  • 鉴权:是(需 designerToken)
  • Tag:多语言模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
jsonObject body JSON path 字段(服务器端 Excel 文件路径)

请求体

{ "path": "<服务器端 .xls/.xlsx 文件路径>" }

响应

dataList<String>,导入结果消息列表。

成功示例

{ "errcode": 0, "errmsg": "ok", "data": ["<消息1>", "<消息2>"], "errors": null }
失败示例(文件格式错误):
{ "errcode": 4001, "errmsg": "文件格式错误", "data": null, "errors": null }
失败示例(其他异常):
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }