resolveContent
POST/api/v1/content/resolve
按资源或固定版本读取独立 Page、Popup、Banner;宿主显式挂载并处理动作。
API v1更新于
请求
- 凭据
- Server Key(传
customerId)或 Customer Token,权限 content:read。 - SDK
- JavaScript
createIndianaServer().resolveContent · JavaScript createIndiana().resolveContent - 成功状态
- HTTP 200
1curl -X POST "$INDIANA_API_URL/api/v1/content/resolve" \2 -H "Authorization: Bearer $INDIANA_API_KEY" \3 -H "X-Indiana-Protocol: 0.7" \4 -H "Content-Type: application/json" \5 -d '{6 "kind": "page",7 "selector": {8 "type": "resource",9 "id": "ddff7ca6-bfe7-445e-81a6-ca13bbf64a41"10 },11 "customerId": "8b258f8b-4228-40fa-8d24-5b16428e686d"12}'
响应结构列出字段与类型,实际值取决于业务数据。
请求体参数
application/json
kindenum必填类型,取值见允许值。
查看允许值
"page""popup""banner"
selectorobject | object必填选择 Offering 或 Paywall 的条件。
展开子字段
type"resource" | "version"必填选择方式。Offering:current(环境中设为当前的 Offering)、id 和 lookup_key 解析为该 Offering 已发布的 Version,version 固定到指定的 Offering Version;Paywall:paywall 解析为其已发布的 Version,version 固定到指定的 Paywall Version。
iduuid | uuid必填要解析其已发布 Version 的 Offering 的 UUID;Offering 已归档或未发布时返回未找到。
customerIdstring可选Customer 的 UUID。用 Server Key 调用时指定 Customer;Customer Token 调用时省略。
minLength: 1
响应字段
成功响应都包含 requestId(本次请求 ID,排查时提供)和 scope(App 与环境)。
HTTP 200 · application/json
requestIduuid必填服务端为这次 HTTP 请求生成的 UUID,排查时提供;它不是你的业务 requestId。
scopeobject必填响应实际所属的 App 和环境。Header 只能核对,不能切换 Key 范围。
展开子字段
projectIdstring必填凭据绑定的 App ID。
minLength: 1
environmentenum必填独立数据范围:sandbox 或 live。
查看允许值
"sandbox""live"
contentobject必填展开子字段
kindenum必填类型,取值见允许值。
查看允许值
"page""popup""banner"
resourceIduuid必填关联对象的 ID。
projectIduuid必填凭据绑定的 App ID。
environmentIduuid必填环境的 ID。
versioninteger必填版本号。
max: 9007199254740991
sourceRevisioninteger必填min: 0 · max: 9007199254740991
documentobject必填已发布的 schemaVersion 3 设计。缓存命中时可为 null;直接 HTTP 调用方须用匹配缓存还原。
展开子字段
kindenum必填类型,取值见允许值。
查看允许值
"page""popup""banner"
namestring必填展示名称,不作为唯一标识。
minLength: 1 · maxLength: 80
screenobject必填展开子字段
namestring必填展示名称,不作为唯一标识。
minLength: 1 · maxLength: 80
surfaceenum必填查看允许值
"popup""paywall""onboarding""page""banner"
initialPageIdstring可选关联对象的 ID。
pattern: ^[a-zA-Z][a-zA-Z0-9_-]{0,63}$
presentationobject | object | object | object必填展示配置。
pagesarray必填minItems: 1 · maxItems: 10
actionsarray必填maxItems: 40
createdAtdate-time必填记录创建时的 ISO 8601 UTC 时间。
错误
失败时返回错误对象,按 error.code 与 error.recovery 处理。下表是这个接口的凭据、作用域和幂等字段决定的错误;视请求内容还可能返回 NOT_FOUND(引用的资源不存在)、NOT_CONFIGURED(所需的集成未连接)或 PAYLOAD_TOO_LARGE。有些拒绝(如余额不足)不是错误,而是成功响应里的 reason。
可能的错误| code | HTTP | 何时 | recovery |
|---|
INVALID_REQUEST | 400 | 请求不符合本页的参数,或缺少协议头。 | fix_request |
UNAUTHENTICATED | 401 | 凭据缺失、无效、过期或已撤销。 | authenticate |
FORBIDDEN | 403 | 凭据没有 content:read 权限。 | check_permissions |
SCOPE_MISMATCH | 403 | X-Indiana-Project 或 X-Indiana-Environment 与凭据所属的 App 和环境不一致。 | check_scope |
RATE_LIMITED | 429 | 请求过多;按 Retry-After 等待后用同一请求重试。 | retry_same_request |
SERVICE_UNAVAILABLE | 503 | 服务暂时不可用;用同一请求重试。 | retry_same_request |
INTERNAL_ERROR | 500 | 结果未知;稍后重试。 | recover_operation |
可能的错误
INVALID_REQUEST
- HTTP
- 400
- 何时
- 请求不符合本页的参数,或缺少协议头。
- recovery
fix_request
UNAUTHENTICATED
- HTTP
- 401
- 何时
- 凭据缺失、无效、过期或已撤销。
- recovery
authenticate
FORBIDDEN
- HTTP
- 403
- 何时
- 凭据没有
content:read 权限。 - recovery
check_permissions
SCOPE_MISMATCH
- HTTP
- 403
- 何时
X-Indiana-Project 或 X-Indiana-Environment 与凭据所属的 App 和环境不一致。- recovery
check_scope
RATE_LIMITED
- HTTP
- 429
- 何时
- 请求过多;按
Retry-After 等待后用同一请求重试。 - recovery
retry_same_request
SERVICE_UNAVAILABLE
- HTTP
- 503
- 何时
- 服务暂时不可用;用同一请求重试。
- recovery
retry_same_request
INTERNAL_ERROR
- HTTP
- 500
- 何时
- 结果未知;稍后重试。
- recovery
recover_operation
相关:错误码与恢复·请求约定·全部接口