-
Namespace 命名空间,可缩写为NS,代表是GameCenter或AppStore,可选的值为:
app
AppStoregame
GameCentervideo
Videos
-
Item 商店中售卖的商品,对应GameCenter中的Game,AppStore中的App
-
Album 专辑,一组Item和Album的集合,有一些Album的ID是特定用途的:
recommend
推荐页(主页)categories
所有Category的入口页{category}
分类category
中的所有Item集合{category}/{subcategory}
category
中子分类subcategory
种所有的Item集合
-
Type 组织Item的一种方式,可选值为:
album
以专辑为视角的Item组织方式,是一个集合item
以单个Item为视角,是单个Item
-
UI Type UI类型,用于表达展示一组Item或一个Item的展示方法,例如
metro
使用类Metro布局展示detail
展示一个Item的Detail
-
Sort 观察一组Item的排序方式,可选值为:
weighting
综合排序(默认)created
创建时间逆序updated
更新时间逆序name
名称正序score
最佳download
下载数
-
Image 一张图片的URL及展现形式
-
Image Group 多张图片组成的一个展现效果,分为背景图和覆盖图
-
Flags 一组标志变量,用于表示Item的某种能力,例如:
upgrade
App或Game是否可更新joystick
: Game是否支持游戏手柄
通用模式为/{NS}/{Type}?id={ID}
,例如:
/game/album?id=album1_id
GameCenter中ID为album1_id
的游戏专辑/game/album?id=recommand
Game的主页内容/game/album?id=action
所有动作类游戏(action
)的专辑/game/item?id=game1_id
GameCenter中ID为game1_id
的单个游戏
实体是Item, Album 一种表达形式,使用JSON形式
-
规则
- 使用
{Entity}
来表达引用一个实体的类型 - 在API调用时,指定
ui
参数,可使返回的Item具有不同的FieldSet
- 使用
-
Image
单张图片:{ "url": "http://...", // 图片的URL "bgcolor": "#3Fde88", // 图片在绘制前需要绘制的背景色 "pos": {"x":100, "y":300}, // (Optional) 图片的位置,如果为null则为坐标0,0 "ani": { ... } // (Optional) 图片的动画效果,如果为null则表示无动画 "size": {"w": 890, "h": 789} // 图片大小 }
-
ImageGroup
一组图片,有背景图和其他覆盖在其上面的图片{ "bg": {Image}, // 背景图 "text": {Image}, // 文字图 "spirit": {Image}, // 精灵图 "icon": {Image}, // 图标 "thumb":{Image}, // 缩略图 //... }
-
UI
关于UI显示的相关信息{ "type": "...",// 当前UI的UI Type "layout": { // 适用于当前UI Type的布局信息,如不存在为null "w": .. "h": .. } }
-
DisplayItem
作为一个Item在列表中展示的基本Fields{ "ns": "app|game|video", // Namespace "type": "category|album|item", // Type "id": "...", // 字符串形式的ID,对于Category来说,可能为空串 "name": "..." // 名称 "images": {ImageGroup}, // 图片 "_ui": {UI} }
-
Item
Item完整公用信息(对于App或Game来说还有各自的信息)// extends DisplayItem { "package": "...", // 应用包名 "phrase": "...", // 一句话简介 "vendor": { // 开发商 "id": "..." "name": "北京春雨天下软件有限公司" }, "flags": { "upgrade": true }, // 标志 "description": "..." // 完整描述 "times": { "updated": 1909088888, // 更新时间 }, "ver": { "code": "200", // 字符串形式的Version Code "name": "1.0.1" // 字符串形式的Version name }, "sizes": { "package": 1941662, // Byte单位的下载包大小 "installed": 20098900, // Byte单位的安装后占用空间 }, "category": { "id": "c1/c2", // 最为详细的分类路径 "name": "...", // 所在分类名称 }, "score": 70, // 0-100的评分 "screenshots": [ {ImageGroup}, {ImageGroup}, // ... ] "counts": { "download": ... // 下载数量 // ... }, }
-
Album
Album信息,包含有Item的列表// extends DisplayItem { "is_category": true|false,这个album是否是category "sort": "..", // sort 规则,如为Album返回则此值为null "pagi": "..", // 当前页码(基于1) "items": [ {DisplayItem}, {DisplayItem}, // ... ] }
-
AlbumList
多页Album
{ "body": [{Album}, {Album}, ...] "preload": { "images": [ "...", "..." ] } }
-
ItemList
{ "body": [{Item}, {Item}], "preload": { "images": [ "...", "..." ] } }
所有API都会附加下列参数,使用HTTP参数形式传递
locale
区域代码,例如zh_CN
res
分辨率,值为hd720
|hd1080
|hd2160
device
设备类型device_id
设备ID,一般为设备MAC地址的md5ns_key
Namespace的Keyopaque
利用ns_key
和URI即参数算出的URL签名
-
GET
/1/{ns}/category?id={id}&sort={sort}&page={page}&filter=...
返回{AlbumList}
获取Category内容page
是基于1的,默认值为1
sort
参数对非Category类Album不起作用
-
GET
/1/{ns}/album?id={id}
,返回:{AlbumList}
获取Album内容 -
GET
/1/{ns}/search?q=word&category=c1/c2
,返回:{AlbumList}
搜索 -
GET
/1/{ns}/home
,返回:{AlbumList}
主页 -
GET
/1/{ns}/item?id={id}
,返回:{ItemList}
获取单个Item信息 -
GET
/1/{ns}/download?item={id}
,返回: 待定