联系我们
荆秀网

服务端接入 RESTful API

接入方可根据自己所用的开发语言,使用符合语义的指令来操作资源。

请求包和响应包均为 JSON 格式。

  • GET 获取指定应用下的数据池保存的数据
    • Method GET
    • URI WSS Restful API Url 资源地址
    • Parameters 参数组
      • AuthKey 1Ufd**PitR 应用密钥
      • AppName my_test_app 应用名
      • PoolName client_price 数据池名
    • Trigger Client Event 对应客户端触发事件
      • None
1
2
#!/bin/bash
curl -4 'WSS Restful API Url/1Ufd******PitR/my_test_app/client_price'
1
2
3
4
5
6
7
8
9
10
11
<?php
require './lib/Xxuyou.class.php';
define('DS', DIRECTORY_SEPARATOR);
$uri = "WSS Restful API Url";
$authKey = "1Ufd******PitR";
$appName = "my_test_app";
$poolName = "client_price";
$url = $uri.$authKey.DS.$appName.DS.$poolName;
$resBody = Xxuyou::get($url);
var_dump($resBody);
?>
  • DELETE 删除指定应用下的数据池,该键中保存的数据也将一并删除
    • Method DELETE
    • URI WSS Restful API Url 资源地址
    • Parameters 参数组
      • AuthKey 1Ufd**PitR 应用密钥
      • AppName my_test_app 应用名
      • PoolName client_price 数据池名
    • Trigger Client Event 对应客户端触发事件
      • poolName:delete 删除整个数据池时触发,如:client_price:delete
      • poolName:change 数据池发生变动时触发,如:client_price:change
1
2
#!/bin/bash
curl -4 -X DELETE 'WSS Restful API Url/1Ufd******PitR/my_test_app/client_price'
1
2
3
4
5
6
7
8
9
10
11
<?php
require './lib/Xxuyou.class.php';
define('DS', DIRECTORY_SEPARATOR);
$uri = "WSS Restful API Url";
$authKey = "1Ufd******PitR";
$appName = "my_test_app";
$poolName = "client_price";
$url = $uri.$authKey.DS.$appName.DS.$poolName;
$resBody = Xxuyou::delete($url);
var_dump($resBody);
?>
  • PUT 修改指定应用下的数据池中的数据(可理解为覆盖操作)
    • Method PUT
    • URI WSS Restful API Url 资源地址
    • Parameters 参数组
      • AuthKey 1Ufd**PitR 应用密钥
      • AppName my_test_app 应用名
      • PoolName client_price 数据池名
    • Request Header Content-Type: application/json 请求头内容类型申明
    • Request Body {…} 请求体内容,UTF-8 编码 JSON 格式
    • Trigger Client Event 对应客户端触发事件
      • poolName:update 当数据池已经存在时触发(推荐监听此事件),如:client_price:update
      • poolName:add 当数据池不存在时触发,如:client_price:add
      • poolName:change 数据池发生变动时触发,如:client_price:change
1
2
3
4
5
#!/bin/bash
curl -4 -X PUT \
-H 'Content-Type: application/json' \
-d '{"event": "auction_close", "action_id": 341, "result": 1, "complete_price": 1450000, "customer_id": 87, "order_id": 629}' \
'WSS Restful API Url/1Ufd******PitR/my_test_app/action_341'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
require './lib/Xxuyou.class.php';
define('DS', DIRECTORY_SEPARATOR);
$uri = "WSS Restful API Url";
$authKey = "1Ufd******PitR";
$appName = "my_test_app";
$poolName = "action_341";
$url = $uri.$authKey.DS.$appName.DS.$poolName;
$payload = array(
'event' => 'auction_close',
'action_id' => 341,
'result' => 1,
'complete_price' => 1450000,
'customer_id' => 87,
'order_id' => 629
);
$resBody = Xxuyou::put($url, $payload);
var_dump($resBody);
?>
  • POST 在指定应用下的数据池中新增数据(可理解为追加操作)
    • Method POST
    • URI WSS Restful API Url 资源地址
    • Parameters 参数组
      • AuthKey 1Ufd**PitR 应用密钥
      • AppName my_test_app 应用名
      • PoolName client_price 数据池名
    • Request Header Content-Type: application/json 请求头内容类型申明
    • Request Body {…} 请求体内容,UTF-8 编码 JSON 格式
    • Trigger Client Event 对应客户端触发事件
      • poolName:append 当数据池已经存在时触发(推荐监听此事件),如:client_price:append
      • poolName:add 当数据池不存在时触发,如:client_price:add
      • poolName:change 数据池发生变动时触发,如:client_price:change
1
2
3
4
5
#!/bin/bash
curl -4 -X POST \
-H 'Content-Type: application/json' \
-d '{"event": "auction_price", "new_price": 1450000, "action_id": 341, "customer_id": 87}' \
'WSS Restful API Url/1Ufd******PitR/my_test_app/action_341'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require './lib/Xxuyou.class.php';
define('DS', DIRECTORY_SEPARATOR);
$uri = "WSS Restful API Url";
$authKey = "1Ufd******PitR";
$appName = "my_test_app";
$poolName = "action_341";
$url = $uri.$authKey.DS.$appName.DS.$poolName;
$payload = array(
'event' => 'auction_price',
'new_price' => 1450000,
'action_id' => 341,
'customer_id' => 87
);
$resBody = Xxuyou::post($url, $payload);
var_dump($resBody);
?>

DELETE 触发事件的顺序

  1. poolName:change
  2. poolName:delete

PUT 触发事件的顺序

  1. poolName:change
  2. poolName:add 或者 poolName:update

POST 触发事件的顺序

  1. poolName:change
  2. poolName:add 或者 poolName:append

按:鉴于目前业界对于 REST 的理解和实践、实现有所差异(特别是对于 PUT 和 POST 表征的理解有所差异),此处并不讨论何为“正确的 REST 表征描述”,仅采用“合适的 REST 表征描述”,不必过于纠结。