跳到正文
Indiana
控制台
开发文档
章节目录 / resolveContent

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
request.shShell
curl -X POST "$INDIANA_API_URL/api/v1/content/resolve" \  -H "Authorization: Bearer $INDIANA_API_KEY" \  -H "X-Indiana-Protocol: 0.7" \  -H "Content-Type: application/json" \  -d '{  "kind": "page",  "selector": {    "type": "resource",    "id": "ddff7ca6-bfe7-445e-81a6-ca13bbf64a41"  },  "customerId": "8b258f8b-4228-40fa-8d24-5b16428e686d"}'

响应结构列出字段与类型,实际值取决于业务数据。

请求体参数

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必填

展开子字段
iduuid必填

ID。

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"

schemaVersion1必填

数据格式版本。

namestring必填

展示名称,不作为唯一标识。

minLength: 1 · maxLength: 80

screenobject必填

展开子字段
kind"screen"必填

类型,取值见允许值。

schemaVersion4必填

数据格式版本。

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必填

展示配置。

themeobject必填

pagesarray必填

minItems: 1 · maxItems: 10

stringsobject必填

actionsarray必填

maxItems: 40

contractobject必填

展开子字段
inputsobject必填

outputsobject必填

createdAtdate-time必填

记录创建时的 ISO 8601 UTC 时间。

错误

失败时返回错误对象,按 error.code 与 error.recovery 处理。下表是这个接口的凭据、作用域和幂等字段决定的错误;视请求内容还可能返回 NOT_FOUND(引用的资源不存在)、NOT_CONFIGURED(所需的集成未连接)或 PAYLOAD_TOO_LARGE。有些拒绝(如余额不足)不是错误,而是成功响应里的 reason。

可能的错误
codeHTTP何时recovery
INVALID_REQUEST400请求不符合本页的参数,或缺少协议头。fix_request
UNAUTHENTICATED401凭据缺失、无效、过期或已撤销。authenticate
FORBIDDEN403凭据没有 content:read 权限。check_permissions
SCOPE_MISMATCH403X-Indiana-Project 或 X-Indiana-Environment 与凭据所属的 App 和环境不一致。check_scope
RATE_LIMITED429请求过多;按 Retry-After 等待后用同一请求重试。retry_same_request
SERVICE_UNAVAILABLE503服务暂时不可用;用同一请求重试。retry_same_request
INTERNAL_ERROR500结果未知;稍后重试。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

相关:错误码与恢复·请求约定·全部接口