- 接口基于HTTP RESTFul思想架构设计。
- 接口地址(URL)统一采用:http://域名/api/请求资源?过滤参数的格式。
例如:
http://域名/api/rog2/list?page=1
。 - 请求参数默认为form表单格式传输(
application/x-www-form-urlencoded
),响应内容默认JSON格式返回。
接入方调用API生成应用,见创建应用。
移动端手机设备的操作系统名字,枚举值
。
value | ios | android |
---|---|---|
含义 | 苹果设备 | 安卓设备 |
打包的应用程序所对应的运行环境,枚举值
value | dev | release |
---|---|---|
含义 | 开发环境 | 发布环境 |
一页显示多少记录,配置值page_size
,详见详见应用配置文档。
最大页数,配置值max_page
,详见详见应用配置文档。
最小文件保留值,配置值min_residue
,详见详见应用配置文档。
苹果官方渠道值,ios_channel
,详见详见应用配置文档。
2016-05-10T02:11:50+0800
传参:根据偏移量计算时间。 不传:显示生成时所传的时间。
var d = new Date()
var offset=-1*d.getTimezoneOffset()
接入方创建自己的应用
/api/[app]/create
POST
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
description | 描述 | string | 是 | 无 |
POST /api/rog2/create
Host: 域名
Content-Type: application/x-www-form-urlencoded
description=xxxxxx
{
"code": 0,
"msg": ""
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
接入方修改自己的应用
/api/[app]/update
POST
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
description | 描述 | string | 是 | 无 |
POST /api/rog2/update
Host: 域名
Content-Type: application/x-www-form-urlencoded
description=xxxxxx
{
"code": 0,
"msg": ""
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
接入方删除自己的应用
/api/[app]/delete
DELETE
无
DELETE /api/rog2/delete
Host: 域名
{
"code": 0,
"msg": ""
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
获取所有应用的列表。
/api/apps
GET
无
GET /api/apps
Host: 域名
{
"code": 0,
"msg": "",
"items": [
"rog1",
"rog2",
"rog3",
"rog4",
],
"page": 1,
"total_page": 1
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
应用名 | item | 平台 | string | 是 |
移动设备会根据userAgent
自动显示出该手机平台所需要的最新安装包。
/api/[app]/mobile/last?time_offset=480
GET
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
time_offset | 时间差 | int | 否 | 无 | 不传只显示生成时的时间 |
GET /api/rog2/mobile/last?time_offset=480
Host: 域名
{
"code": 0,
"msg": "",
"items": [
{
"platform": "android",
"environment": "dev",
"version": "1.0.11",
"time": "2016-8-9 00:00:11",
"description": "测试描述11",
"url": "http://example.me11",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
},
{
"platform": "android",
"environment": "release",
"version": "1.0.12",
"time": "2016-8-9 00:00:12",
"description": "小测试描述androidrc12",
"url": "http://example.me12",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "mi"
}
]
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
platform | item | 平台 | string | 是 |
environment | item | 环境 | string | 是 |
version | item | 版本号 | string | 是 |
time | item | 打包时间 | string | 是 |
description | item | 版本描述 | string | 是 |
url | item | Jenkins构建url | string | 是 |
down | item | 下载地址 | string | 是 |
channel | item | 渠道 | string | 是 |
移动设备会根据userAgent
自动显示出该手机平台所需要的历史列表。限制max_page,page_size
/api/[app]/mobile/list/[environment]?page=1&time_offset=480
GET
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
page | 页数 | int | 是 | 无 | |
time_offset | 时间差 | int | 否 | 无 | 不传只显示生成时的时间 |
GET /api/rog2/mobile/list/dev?page=1&time_offset=480
Host: 域名
{
"code": 0,
"msg": "",
"items": [
{
"platform": "android",
"environment": "dev",
"version": "1.0.11",
"time": "2016-8-9 00:00:11",
"description": "测试描述11",
"url": "http://example.me11",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
},
{
"platform": "android",
"environment": "dev",
"version": "1.0.2",
"time": "2016-8-9 00:00:02",
"description": "测试描述2",
"url": "http://example.me2",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
}
],
"page": 1,
"total_page": 2
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
page | 无 | 当前页码 | int | 是 |
total_page | 无 | 总页数 | int | 是 |
platform | item | 平台 | string | 是 |
environment | item | 环境 | string | 是 |
version | item | 版本号 | string | 是 |
time | item | 打包时间 | string | 是 |
description | item | 版本描述 | string | 是 |
url | item | Jenkins构建url | string | 是 |
down | item | 下载地址 | string | 是 |
channel | item | 渠道 | string | 是 |
pc端获得所有平台的最新安装包。ios
的dev,release
版本,android
的dev,release
版本
/api/[app]/last?time_offset=480
#####请求方式
GET
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
time_offset | 时间差 | int | 否 | 无 | 不传只显示生成时的时间 |
GET /api/rog2/last?time_offset=480
Host: 域名
{
"code": 0,
"msg": "",
"items": [
{
"platform": "android",
"environment": "dev",
"version": "1.0.11",
"time": "2016-8-9 00:00:11",
"description": "测试描述11",
"url": "http://example.me11",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
},
{
"platform": "android",
"environment": "release",
"version": "1.0.12",
"time": "2016-8-9 00:00:12",
"description": "小测试描述androidrc12",
"url": "http://example.me12",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "mi"
},
{
"platform": "ios",
"environment": "dev",
"version": "1.0.0",
"time": "2016-8-9 00:00:00",
"description": "小测试描述ios",
"url": "http://example.me",
"down": "https://appinhouse.rog2.org/api/rog2/dev/ios/1.0.0.plist",
"channel": "appstore"
},
{
"platform": "ios",
"environment": "release",
"version": "1.0.0",
"time": "2016-8-9 00:00:00",
"description": "小测试描述iosre",
"url": "http://example.me",
"down": "https://appinhouse.rog2.org/api/rog2/release/ios/1.0.0.plist",
"channel": "appstore"
}
]
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
platform | item | 平台 | string | 是 |
environment | item | 环境 | string | 是 |
version | item | 版本号 | string | 是 |
time | item | 打包时间 | string | 是 |
description | item | 版本描述 | string | 是 |
url | item | Jenkins构建url | string | 是 |
down | item | 下载地址 | string | 是 |
channel | item | 渠道 | string | 是 |
pc端获得不同平台,不同环境的历史版本。限制max_page,page_size。
/api/[app]/list/[platform]/[environment]?page=1&time_offset=480
GET
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|---|
page | 页数 | int | 是 | 无 | |
time_offset | 时间差 | int | 否 | 无 | 不传只显示生成时的时间 |
GET /api/rog2/list/android/dev?page=1&time_offset=480
Host: 域名
{
"code": 0,
"msg": "",
"items": [
{
"platform": "android",
"environment": "dev",
"version": "1.0.11",
"time": "2016-8-9 00:00:11",
"description": "测试描述11",
"url": "http://example.me11",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
},
{
"platform": "android",
"environment": "dev",
"version": "1.0.2",
"time": "2016-8-9 00:00:02",
"description": "测试描述2",
"url": "http://example.me2",
"down": "http://xxxxx/xxxx/xxxx.apk",
"channel": "none"
}
],
"page": 1,
"total_page": 2
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
page | 无 | 当前页码 | int | 是 |
total_page | 无 | 总页数 | int | 是 |
platform | item | 平台 | string | 是 |
environment | item | 环境 | string | 是 |
version | item | 版本号 | string | 是 |
time | item | 打包时间 | string | 是 |
description | item | 版本描述 | string | 是 |
url | item | Jenkins构建url | string | 是 |
down | item | 下载地址 | string | 是 |
channel | item | 渠道 | string | 是 |
获得plist文件。苹果浏览器调用。
/api/[app]/plist/[environment]/version.plist
GET
无
GET /api/rog2/plist/dev/1.1.1.plist
Host: 域名
"msg": "",
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
删除过久的历史版本(不包含归档文件)
,只保留最新的一些版本。residue的限制min_residue
/api/[app]/delete/[platform]/[environment]
#####请求方式
DELETE
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 |
---|---|---|---|---|
residue | 剩余的数量 | int | 是 | 否 |
DELETE /api/rog2/delete/dev/1.0.0.plist?residue=10
Host: 域名
{
"code": 0,
"msg": "",
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
生成描述文件。生成前需要有归档文件。如果是ios,则同时生成plist。详见客户端(ipa/apk)的归档
/api/[app]/desc/[platform]/[environment]
POST
参数名 | 含义 | 参数类型 | 是否必须 | 默认值 |
---|---|---|---|---|
version | 打包版本 | string | 是 | 否 |
time | 打包时间 | string | 是 | 否 |
channel | 渠道 | string | 是 | 否 |
url | 构建url | string | 是 | 否 |
software_url | ipa下载地址 | string | 是 | 否 |
id | plist中bundle-identifier | string | platform==ios&&channel==appstore?是:否 | 否 |
title | plist中title | string | platform==ios&&channel==appstore?是:否 | 否 |
full_url | plist中full-size-image | string | 否 | 否 |
display_url | plist中display-image | string | 否 | 否 |
software_url_extend_name | ipa扩展下载地址的名字,不为空时software_url为扩展下载地址 | string | 否 | 否 |
software_url_extend_key | ipa扩展下载地址的不支持中文,name的英文或拼音 | string | 否 | 否 |
POST /api/rog2/desc/ios/dev
Host: 域名
Content-Type: application/x-www-form-urlencoded
version=1.0.2&url=http://www.xxxx.xxx
&channel=appstore&time=2016-05-10T02:11:50Z
&description=这个版本修改了bug
&software_url=https://appinhouse.rog2.org/download/rog2/dev/ios/data/1.0.0/ROG2NewD_1.0.0.ipa
&id=aaa&title=aaaa&software_url_name=上海&software_url_key=ShangHai
{
"code": 0,
"msg": "",
}
返回参数 | 父属性 | 含义 | 参数类型 | 是否必须 |
---|---|---|---|---|
code | 无 | 返回码 | int | 是 |
msg | 无 | 提示信息 | string | 否 |
错误代码 | 详细描述 |
---|---|
0 | 成功 |
-1 | 系统错误 |
-2 | 未知错误 |
1001 | 参数错误,请参考API文档 |
1002 | page超出最大页数限制 |
1003 | 创建plist文件错误 |
1004 | 归档文件不存在 |
1005 | 删除文件错误 |
1006 | 时间格式错误 |
1007 | 数据库错误 |
1008 | 应用不存在 |
1009 | 应用已存在 |