G3CMS 數據查詢接口協議
1.1.用途
向集成客戶端提供查詢數據和登錄服務。
1.2.通信協議
客戶端和服務器通過HTTP協議通信,客戶端使用HTTP Get向服務器發送請求,服務器返回json格式的業務數據或操作結果給客戶端。
1.3.URL編碼
當URL請求參數值中包含URL地址保留字符時,應對參數值進行URL編碼。
具體參見“RFC2396: Uniform Resource Identifiers (URI): Generic Syntax”。
當請求參數包含中文字符時,應對中文字符采用UTF-8編碼。
1.4.返回消息結構
返回的json消息數據結構具有嚴格的一致性,客戶端可以采用一致的接收和解析方式處理返回消息。
簡單的返回消息包含對請求的處理結果,結構如下:
{
"code":0,
"err_desc":""
}
其中:
code 為0表示處理成功,其它值表示處理失敗。
err_desc是對錯誤的描述,在code為0時err_desc會被省略。
特殊情況,在用戶認證的login1和login2接口中,err_desc具有特殊用途用法,具體參見接口描述。除這兩個接口之外,err_desc都表示錯誤描述。
帶業務數據的消息
有的返回消息除了包含處理結果信息,還包含業務數據記錄集,結構如下:
{ "code":0, "data":{ "count":1, "items":[...] } }
其中:
data 業務數據的根節點:
count 業務數據的條數,可能的值為0 ~ n
items 業務數據,是一個數組,數據條數由count屬性定義。當count為0時,items屬性可能為null或者不存在。
本文檔後續章節中,在描述items元素的屬性時,會省略一些屬性的描述,即實際調用接口返回的屬性在本文檔中可能會沒有描述,這種情況下請直接忽略被忽略描述的屬性值。本文檔中描述的屬性是實際返回內容的一個子集,沒有描述到的內容對集成本系統沒有影響。
帶分頁數據的消息
如果返回數據較多,服務器會對返回的數據進行分頁,客戶端可以按照頁碼請求指定範圍的數據。帶分頁信息的返回數據結構如下:
{ "code":0, "data":{ "page":1, "page_size":"20", "pages":"1", "total":"2", "count":2, "items":[...] } }
分頁數據信息在data元素下,意義如下:
page 當前頁碼
page_size 每頁數據記錄條數
pages 總共的頁數
total 總數據條數
count 當前返回頁的數據條數
如果返回的數據帶有分頁信息,則可以在調用接口時使用page參數來請求指定頁碼的數據。
1.5.參考
[1] RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1[S].
[2] RFC 3986, Uniform Resource Identifier (URI): Generic Syntax[S].
[3] http://www.json.org/ Introducing JSON
2.查詢分類
2.1.查詢分類
-
用途
查詢CMS上的分類信息。
請求
http://ip/mserver/cms/interface2/catalog/?parent=1
parent 上級分類編號。如果忽略,會返回一級分類列表。
如果要查詢一級分類,請去掉parent參數。 - 響應
{
"code": 0,
"data": {
"count": 2,
"items": [
{
"id": 1,
"name": "公共欄目",
"comment": "",
"upper_catalog_id": 0
},
{
"id": 2,
"name": "私有欄目",
"comment": "",
"upper_catalog_id": 0
}
]
}
}
id 編號
name 名稱
comment 備註
"upper_catalog_id 上級分類編號, 0 表示當前分類是一級分類。
2.2.查詢分類樹
-
用途
查詢所有分類及其下級分類。
請求
http://ip/mserver/cms/interface2/catalog/?request=all - 響應
{
"code": 0,
"data": {
"count": 2,
"items": [
{
"id": 1,
"name": "公共欄目",
"comment": "",
"upper_catalog_id": 0,
"sub_items": [
{
"id": 5,
"name": "二級分類1",
"comment": "",
"upper_catalog_id": 1
},
...
]
},
...
]
}
}
id 編號
name 名稱
comment 備註
"upper_catalog_id 上級分類編號, 0 表示當前分類是一級分類。
sub_items 下級分類數組,包含 0 或多個下級分類。
3.查詢媒體資源
3.1.查詢媒體資源
-
用途
查詢媒體資源。
可以查詢某個編號的資源的信息,也可以查詢某個分類下的所有資源信息。
請求
http://ip/mserver/cms/interface2/media/?parent=2
parent 分類編號,如果要查詢某個分類下的所有資源,請忽略下一個參數。
media_id 資源編號,如果給出該參數,則只查詢編號為media_id的一個資源的信息,並忽略parent參數。 - 響應
{
"code": 0,
"data": {
"page": 1,
"page_size": "20",
"pages": 9,
"total": "18",
"count": 2,
"items": [
{
"id": 79,
"catalog_id": 2,
"title": "vod - 8898",
"sub_title": "G3視頻",
"abstract": null,
"text": null,
"resource_type": "vod",
"cover": "/mserver/cms/covers/res_cover_79.jpg?1515729601",
"duration": 98,
"add_time": "2018-01-08 19:19:26",
"view_times": 0,
"open_status": 0
},
...
]
}
}
返回0個或多個資源信息。
id 資源編號
catalog_id 所屬分類編號
title 標題
sub_title 小標題
abstract 摘要描述
text 描述
resource_type vod或live
cover 封面地址
duration 播放時長
add_time 添加時間
view_times 觀看次數
open_status 開放狀態
4.查詢播放地址
4.1.查詢播放地址
-
用途
查詢某個媒體資源的播放地址。
請求
http://ip/mserver/cms/interface2/url/?media_id=39&protocol=http-mp4
media_id 資源編號。
protocol 播出協議,點播資源可以是hls,http-flv或http-mp4;直播資源可以是 rtmp或hls。如果省略,返回所有協議的地址。
客戶端請根據終端類型選用合適的播出協議:
android、ios或其他支持H5的瀏覽器,可以選用:hls, http-mp4協議
PC選用http-flv或rtmp協議 - 響應
{
"code": 0,
"data": {
"count": 1,
"items": [
{
"id": 104,
"resource_id": 39,
"web_url": "/mp4/vod/yellowstone/yellowstone.mp4",
"web_io_protocol": "http-mp4",
"add_time": "2017-08-25 16:35:16"
}
]
}
}
返回0個或多個播放地址,一個資源可能有多個不同協議的播放地址。
resource_id 資源編號
web_url 播出地址
"web_io_protocol 播出協議
G3CMS 數據查詢接口協議