diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 0000000..2cd7213 --- /dev/null +++ b/docs/api.md @@ -0,0 +1,245 @@ +# 卡牌游戏接口说明 +## 一. 说明 + +通用返回JSON结构, 接口Response的数据结构说明只包含data部分 +``` JSON +{ + "errcode": 0, //0:成功 + "errmsg": "", //错误描述 + "data": {}, // 数据 +} +``` + + +## 二. 客户端接口列表 + +### 1. 玩家资料 +1. Method: GET +2. URI: /api/:accountid/uinfo + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +3. Response: JSON + +```js + +``` + +### 2. 可用卡牌信息 +1. Method: GET +2. URI: /api/:accountid/cards + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +3. Response: JSON + +> 说明: 匹配模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2) +> 赛季排位模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1) + +```js +[{ + cardid: 1022, // 卡牌id + owned: true, // 是否已拥有 + ban: false, // 是否被禁用 + usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用 + free: false, // 是否免费 + free_expire: 1609919293 // 免费到期时间 +}] +``` + +### 3. 可用英雄列表 +1. Method: GET +2. URI: /api/:accountid/heros + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| heroid | 帐号id | + +3. Response: JSON + + +> 说明: 匹配模式可以用的英雄: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2) +> 赛季排位模式可以用的英雄: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1) + + +```js +[{ + heroid: '', // 英雄id + owned: true, // 是否已拥有 + ban: false, // 是否被禁用 + usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用 + free: false, // 是否免费 + free_expire: 1609919293 // 免费到期时间 + level: 1, // 等级 + exp: 0, // 当前的经验值 +}] +``` + +### 4. 自定义卡组列表 +1. Method: GET +2. URI: /api/:accountid/card_group/:heroid + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| heroid | 英雄id, 不传的话, 获取该玩家所有可用卡组 | + +3. Response: JSON + +```js +[{ + id: '', // 卡组id + heroid: '', // 英雄id + selected: true, // 当前选择的卡组 + iddefault: false, // 是否是默认卡组, 默认卡组不能编辑 + cards: [{ + cardid: '', // 卡牌id + owned: true, // 是否已拥有 + ban: false, // 是否被禁用 + usetype: 1, // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用 + free: false, // 是否免费 + free_expire: 1609919293 // 免费到期时间 + }] +}] +``` + +### 5. 保存卡组 +1. Method: POST +2. URI: /api/:accountid/card_group/save/:gid + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| gid | 卡组id, 新卡组传 'new' | + +> POST参数 + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| cards |[cardid] 卡牌id的数组 | + +3. Response: JSON + +根据errcode判断成功or失败 + +### 6. 删除卡组 +1. Method: GET +2. URI: /api/:accountid/card_group/delete/:gid + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| gid | 卡组id, 不能为空 | + +3. Response: JSON + +根据errcode判断成功or失败 + +### 7. 解锁英雄 +1. Method: POST +2. URI: /api/:accountid/hero/unlock/:heroid + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| heroid | 英雄id | +> POST参数 + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| type | 类型 0: 碎片, 1: 代币购买 2: 试用 | +| moneyid |代币的item id | + + + + +3. Response: JSON + +根据errcode判断成功or失败 + +### 8. 抽卡 +1. Method: GET +2. URI: /api/:accountid/card/draw/:count + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| count | 抽卡数量 | + + +3. Response: JSON + +```js +[{ + cardid: 1022, // 卡牌id + isnew: true, // 是否是新获得的卡 + expdust: '', // 分解可获得的英雄经验的item id + dustcount: 100 // 可获得数量 +}] +``` + +### 9. 对战记录列表 +1. Method: GET +2. URI: /api/:accountid/records + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +3. Response: JSON + +```json + +``` + +### 10. 升级英雄 +1. Method: POST +2. URI: /api/:accountid/hero/update/:heroid + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +| heroid | 英雄id | + +> POST参数 + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| moneyid |代币的item id | +| count |试用数量 | + +3. Response: JSON + +```json +{ + exp: 1022, // 当前经验值 + exp_get: 100, // 本次获得的经验 + level: 1 // 当前等级 +} +``` +## 三. 服务端接口列表 + +### 1. 上传对战记录(服务端调用) +1. Method: POST +2. URI: + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +3. Response: JSON + +```json + +``` + +