现在看我整理好的文档,一步步调试restful API,感觉非常简单,但当时在局中的我,确实碰到了不少麻烦事,而且网上也没标志的文档,都是自己网上找,自己实战,看源代码的方式折腾出来的。总体感觉,用Yii2restful API还是蛮方便的。

 

1. 为了access-token参数能兼容nginx下的lua语言开发restful API,把access-token参数修改成accesstoken

同时,Yii2.0框架下的:

vendor/yiisoft/yii2/filters/auth/QueryParamAuth.php需要修改,把变量access-token修改成accesstoken

 

2. 对接收到的异常,客户端怎么进行处理?

 accesstoken错误时

{

  "name": "Unauthorized",

  "message": "You are requesting with an invalid credential.",

  "code": 0,

  "status": 401,

  "type": "yii\web\UnauthorizedHttpException"

}

 

 访问速率超速时

{

  "name": "Too Many Requests",

  "message": "Rate limit exceeded.",

  "code": 0,

  "status": 429,

  "type": "yii\web\TooManyRequestsHttpException"

}

所以,设计API时,需要对返回的JSON数据格式设计统一的格式。

 

3. 最神奇的是数据表字段的值,会影响到“速率控制”功能。这我折腾了老半天才实验出来。

 在mysql终端执行下面的insert语句时,先执行set names utf8

INSERT INTO `yii2_user` VALUES

(1,'15801930241','9cbf8a4dcb8e30682b927f352d6559a0','1020617646@qq.com',1,1453174670,'15801930241','0.0.0.0',0,'64CE989D1FD68AF578EF4933166FF25E',0,0);

否则,访问速率控制会不起作用,真是奇怪。


代码下载地址:

http://pan.baidu.com/s/1o7NsVZc