跳转至

API参考:多个配置

获取多个内容示意图

您可以在一次调用中从Joystick检索一组内容。

通过API一次获取多个配置

请求

端点

POST https://api.getjoystick.com/api/v1/combine/?c=[":cid_1", ":cid_2", ":cid_3"]&dynamic=true

:contentId_00替换为您想要的配置内容ID。:contentId不区分大小写。

头部

请求属性 必需 备注
Content-Type application/json
x-api-key 您的API密钥 您为目标环境创建的API密钥。每个环境都不同。在环境页面创建和管理。

请求查询参数 / 选项

查询参数 描述
c 字符串数组。必需。 这是您希望返回的contentIds列表。
dynamic 可选。表示在动态响应中将内容包装在'data'对象中,并应用了关于细分和AB测试的附加元数据。查看响应部分以获取输出。
使用:/combine/?c=["cid_1", "cid_2"]&dynamic=true
responseType 可选。区分大小写。表示在动态响应中序列化'data'对象。必须与'dynamic'一起使用。查看响应部分以获取输出。
使用:/combine/?c=["cid_1", "cid_2"]&dynamic=true&responseType=serialized

请求体

请求体应为JSON,并且不能为空。至少必须包括以下片段。

{
    "u": "",
    "p": {}
}   
{
    "u": "the-unique-user-id",
    "v": "3.2.1",
    "p": {
        "level": 1,
        "location": "north_pole",
        "balance": 101,
        "days_since_install": 14
    }
}   
属性 要求 描述
u 字符串。必需。 这是特定用户的唯一标识符。我们使用此标识符将用户分成粘性AB测试组。至少发送一个空字符串。
p 对象。必需。 这是一个键:值属性的字典,Joystick可以使用它进行细分(基于您发送的属性,可以返回不同的配置内容)。至少发送一个空对象。查看使用详情
v 可选。 这是发出请求的应用的版本。我们强烈建议发送此内容。必须是三部分的语义版本,例如"3.2.1"

示例

curl --location --request POST 'https://api.getjoystick.com/api/v1/combine/?c=["contentId_01", "contentId_02", "contentId_03"]' \
--header 'X-Api-Key: YOUR-API-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{"u": "", "p": {}}'

故障排除

遇到问题?查看我们的故障排除指南

响应

响应体将是一个以contentId为键的对象。每个对象都与单独请求的内容完全相同。

默认响应

默认响应只返回每个contentId键下的配置内容。

200 OK
{
    "contentId_01": { "greeting": "Hello, world!" },
    "contentId_02": { "greeting": "Hello, planet!" },
    "contentId_03": { "greeting": "Hello, solar system!" }
}   

带元数据的包装响应

如果在请求查询参数上设置了dynamic=true选项,则为此响应。您将获得有关应用的细分和AB测试转换/变异的附加信息(如果有的话)。
(/combine/?c=["contentId_01", "contentId_02", "contentId_03"]&dynamic=true)

200 OK
{
    "contentId_01": {
        "data": { "greeting": "Hello, world!" },
        "hash": "2277e0d4",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    },
    "contentId_02": {
        "data": { "greeting": "Hello, planet!" },
        "hash": "abcd1234",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    },
    "contentId_03": {
        "data": { "greeting": "Hello, solar system!" },
        "hash": "defg9876",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    }
}   

带元数据的包装响应,序列化

如果在请求查询参数上设置了dynamic=true和responseType=serialized选项,则为此响应。
(/combine/?c=["contentId_01", "contentId_02", "contentId_03"]&dynamic=true&responseType=serialized)

200 OK
{
    "contentId_01": {
        "data": "{ \"greeting\": \"Hello, world!\" }",
        "hash": "2277e0d4",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    },
    "contentId_02": {
        "data": "{ \"greeting\": \"Hello, planet!\" }",
        "hash": "abcd1234",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    },
    "contentId_03": {
        "data": "{ \"greeting\": \"Hello, solar system!\" }",
        "hash": "defg9876",
        "meta": { "uid": 0, "mod": 0, "seg": []}
    }
}   

更多信息

要了解每个配置对象的详细信息,请参考我们的单一内容API以获取更多信息。

让我们开始吧!

获取沙盒帐户

为您的团队配备火箭助推器。今天就获取一个沙盒帐户

加入社区

前往我们的Discord服务器获取技巧、支持等更多信息:Discord