通用排行榜接口文档

说明

rank_type 排行榜类型,用于区分排行榜,排行榜唯一标识

错误码

{
    ok = 0,                 -- 成功
    method_error = 1,       -- HTTP方法错误
    rank_type_error = 2,        -- 排行类型错误
    playerid_error = 3,     -- 玩家ID错误
    score_type_error = 4,   -- 分数类型错误
    updates_type_error = 5, -- 用户列表数据类型错误
    extdata_type_error = 6, -- 扩展数据类型错误
    n_type_error = 7, -- n类型错误
    with_extras_type_error = 8, -- with_extras类型错误
    start_rank_type_error = 9, -- start_rank类型错误
    end_rank_type_error = 10, -- end_rank类型错误
    updates_data_not_be_none = 11, -- 待更新的用户数据不能为空
    delete_error = 11, -- 删除失败,可能原因为未找到该玩家
    player_ids_type_error = 12, -- player_ids类型错误
    player_ids_index_type_error = 13, -- player_ids子项必须为字符串
    min_score_type_error = 14, -- min_score类型错误
    cache_num_error = 15, -- cache_num数据错误
    allow_negative_type_error = 16, -- allow_negative数据错误
    set_config_error = 17, -- 设置排行榜参数失败
    internal_error = 99,    -- 内部错误
}

接口详情

1. 设置排行榜参数

设置上榜分数下限,缓存条数,分数可否为负。

  • URL/rank/set_config
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要设置的排行榜
min_scorebodyinteger上榜分数下限 默认0
max_scorebodyinteger上榜分数上限限 默认999999
cache_numbodyinteger缓存数量 默认0
allow_negativebodybool是否允许分数为负数 默认false
open_minbodybool为true时min_score才生效
open_maxbodybool为true时max_score才生效

请求示例

{
    "rank_type": "test_rank_type",
    "min_score": 1,
    "max_score": 1,
    "cache_num": 100,
    "allow_negative": true,
    "open_min": false,
    "open_max": false
}

响应示例

成功响应 (200 OK)

{
	"code": 0
}

2. 获取排行榜参数

  • URL/rank/get_config
  • MethodPOST/GET
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typepathstring需要获取的排行榜

请求示例

{
    "rank_type": "test_rank_type"
}

响应示例

成功响应 (200 OK)

{
	"code": 0,
	"data": {
		"cache_num": 1,
		"min_score": 1,
		"allow_negative": false
	}
}

3. 直接修改用户数据

  • URL/rank/update_score_direct
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
player_idbodystring用户唯一ID
scorebodyinteger最新的分数
extra_databodystring额外的数据

请求示例

{
	"rank_type": "test_rank_type",
	"player_id": "1001",
	"score": 10,
	"extdata": "exercitation voluptate"
}

响应示例

成功响应 (200 OK)

{
	"score": 10,
	"code": 0
}

4. 批量直接修改用户数据

  • URL/rank/batch_update_score_direct
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
updatesbodylist集合
updates[1].player_idbodystring用户唯一ID
updates[1].scorebodyinteger最新的分数
updates[1].extra_databodystring额外的数据

请求示例

{
    "rank_type": "test_rank_type",
    "updates": [
        {
            "player_id": "Google",
            "score": 1,
            "extdata": "这里可存字符串"
        },
        {
            "player_id": "Baidu",
            "score": 1,
            "extdata": "这里可存字符串"
        }
    ]
}

响应示例

成功响应 (200 OK)

{
	"code": 0
}

5. 更新用户分数

  • URL/rank/update_score
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
player_idbodystring用户唯一ID
delta_scorebodyinteger分数变化量(可正可负)
extra_databodystring额外的数据

请求示例

{
	"rank_type": "test_rank_type",
	"player_id": "1001",
	"delta_score": 10,
	"extdata": "exercitation voluptate"
}

响应示例

成功响应 (200 OK)

{
    "score": 40,
    "code": 0
}

6. 批量更新用户分数

  • URL/rank/batch_update_score
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
updatesbodyarray集合
updates[1].player_idbodystring用户唯一ID
updates[1].delta_scorebodyinteger分数变化量(可正可负)
updates[1].extra_databodystring额外的数据

请求示例

{
    "rank_type": "test_rank_type",
    "updates": [
        {
            "player_id": "Google",
            "delta_score": 1,
            "extdata": "这里可存字符串"
        },
        {
            "player_id": "Baidu",
            "delta_score": 1,
            "extdata": "这里可存字符串"
        }
    ]
}

响应示例

成功响应 (200 OK)

{
	"code": 0
}

7. 获取用户数据

  • URL/rank/get_player_info
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
player_idbodystring用户唯一ID

请求示例

{
	"rank_type": "test_rank_type",
	"player_id": "1001"
}

响应示例

成功响应 (200 OK)

{
	"code": 0,
	"data": {
		"player_id": "1001",
		"rank": 1,
		"extra": "exercitation voluptate",
		"score": 432
	}
}

8. 获取排行榜前N名

  • URL/rank/get_top_n
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
nbodyinteger前N条数据
with_extrasbodybool是否返回extra_data,默认true

请求示例

{
	"rank_type": "test_rank_type",
	"n": 2,
	"with_extras": true
}

响应示例

成功响应 (200 OK)

{
	"code": 0,
	"data": [
		{
			"rank": 1,
			"score": 432,
			"player_id": "1001",
			"extra": "exercitation voluptate"
		},
		{
			"rank": 2,
			"score": 1,
			"player_id": "Google",
			"extra": {}
		}
	]
}

9. 获取指定排名范围内用户

  • URL/rank/get_range
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
start_rankbodyinteger起始名次,默认1
end_rankbodyinteger结束名次,默认为起始名次
with_extrasbodybool是否返回extra_data,默认true

请求示例

{
	"rank_type": "test_rank_type",
	"start_rank": 1,
	"end_rank": 2,
	"with_extras": true
}

响应示例

成功响应 (200 OK)

{
	"code": 0,
	"data": [
		{
			"score": 432,
			"rank": 1,
			"player_id": "1001",
			"extra": "exercitation voluptate"
		},
		{
			"score": 1,
			"rank": 2,
			"player_id": "Google",
			"extra": {}
		}
	]
}

10. 删除指定排行榜指定用户

  • URL/rank/remove_player
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
player_idbodystring用户唯一ID

请求示例

{
	"rank_type": "test_rank_type",
	"player_id": "1001"
}

响应示例

成功响应 (200 OK)

{
	"code": 0
}

11. 批量删除指定排行榜用户

  • URL/rank/batch_remove_player
  • MethodPOST
  • 权限: 需要认证

请求参数

参数名位置类型必填说明
rank_typebodystring需要获取的排行榜
player_idsbodylist用户唯一ID列表
player_ids.1bodystring用户唯一ID
player_ids....bodystring用户唯一ID
player_ids.nbodystring用户唯一ID

请求示例

{
    "rank_type": "test_rank_type",
    "player_ids": [
        "1001",
        "1002"
    ]
}

响应示例

成功响应 (200 OK)

{
	"code": 0
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注