更新导出模板
按 (type, id) 部分更新(partial update)一个已存在的导出模板。只更新请求体里出现的字段,其余字段保留原值。
请求地址
POST {BASE_URL}/api/open/v1/export-templates/update鉴权 Header
和 创建翻译任务 完全一样。POST 的 raw body 参与签名:MD5(timestamp + raw_body + appSecret)。
请求体(JSON)
json
{
"type": "project_strings",
"id": "tpl-9d3f1a2c",
"name": "默认 INI 导出 (重命名)",
"is_default": true
}字段说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | 模板类型,仅用于定位(不能改 type),见 列表接口 |
id | string | 是 | 模板 ID,仅用于定位(不能改 id) |
name | string | 否 | 新名称(非空) |
format | string | 否 | 新导出格式:csv / json / xlsx / ini / xliff / xml |
is_default | bool | 否 | true 时自动把同 type 下其它模板的 is_default 置 false(一次原子写入,对并发安全) |
mode | string | 否 | 新模式:single / separate |
fields | string[] | 否 | 替换字段列表(整体替换,非追加) |
languages | string[] | 否 | 替换默认语言列表(整体替换) |
field_order | array | 否 | 替换字段顺序(整体替换),元素结构:{ "type": "field" | "language", "value": "<字段名 / 语言码>" } |
数组类字段是整体替换而不是数组追加 —— 如果你只想加一个语言,需要先取出现有
languages,加入新值,再整体提交。
created_at/updated_at由服务端生成;其中updated_at每次更新都会刷新。
响应
json
{
"success": true,
"code": 0,
"msg": "ok",
"trace_id": "...",
"data": {
"type": "project_strings",
"template": {
"id": "tpl-9d3f1a2c",
"name": "默认 INI 导出 (重命名)",
"is_default": true,
"format": "ini",
"mode": "single",
"languages": ["en", "ja", "ko"],
"field_order": [
{ "type": "language", "value": "en" },
{ "type": "language", "value": "ja" },
{ "type": "language", "value": "ko" }
],
"created_at": 1715520000000,
"updated_at": 1715606400000
}
}
}返回的是更新后的完整模板对象(与 详情接口 同结构)。
错误码
| code | 说明 |
|---|---|
| 400 | 请求体不是合法 JSON 对象 / type 缺失或非法 / id 缺失 / 无任何可更新字段 / 字段类型不对 |
| 401 | 签名校验失败 / 时间戳过期 |
| 403 | App Secret 未配置 |
| 404 | 找不到指定 id 的模板(type 选错也会 404) |
| 500 | 写入失败或系统错误 |
示例
bash
APP_KEY="5685414646a54423c891d87194d87f3f"
APP_SECRET="<你的 App Secret>"
BASE_URL="https://api.loxily.com"
BODY='{"type":"project_strings","id":"tpl-9d3f1a2c","name":"默认 INI 导出 (重命名)","is_default":true}'
TIMESTAMP=$(date +%s)
SIGN=$(printf '%s' "${TIMESTAMP}${BODY}${APP_SECRET}" | md5)
curl -s -X POST "${BASE_URL}/api/open/v1/export-templates/update" \
-H "Content-Type: application/json" \
-H "X-Loxily-AppKey: ${APP_KEY}" \
-H "X-Loxily-Timestamp: ${TIMESTAMP}" \
-H "X-Loxily-Sign: ${SIGN}" \
--data "${BODY}"