restful api php设计
作为一个新手程序员,刚上班不久就被BOSS,拖去开发restful api 与APP交互。拿到手一脸蒙圈,然后看了某度的别人所设计的,感觉就是重复很多,设计很多。然后FQ出去看了好久,终于把这个K完了。然后写下这个博文,让自己总结一下和记录。
首先我们要做的是PHP db封装,这个要包含最基本的CRUD。可以把常量就是配置数据库的写在头部,或是写在另外一个页面,导入这个cofin。
然后我要介绍restful api 的设计有很多种,
我们使用这种方法:
get:select POST:inseit into put:update delete:delete
每一个method对应不同的方法,这样方便而且容易区分。
例如一个用户表:
GET:/app/ 列出所有用户
GET: /app/1 列出ID为1的用户
POST:/app/ 增加用户
PUT:/app/id 修改指定ID为1的用户(put有个特性,他只会修改一次,不管你怎么刷新页面)
delete:/app/id 删除指定ID
[这里要使用一个工具 chorm的postman,这个工具可以模拟从APP发送不同的method方法,发送的格式因为都是JSON,也可以在上面修改,这个是别的软件,不会操作自己百度一下,对了,下载下来如果发现装不上去,可以把里面那个文件的后缀名,改成.rar.然后在解压到当前的文件夹,把_metadata前面的_去掉,然后在用谷歌就可以使用了]
而我不使用put和delect ,不是嫌麻烦,是那两个没怎么用过,有点抗拒。我是这么写的
都用POST或是分开get和Post,只要传入的json中有”第一个“[way]=add或select,把方法传进来,用swtich这个方法判断。
1.POST方法接收不到头部不是header(”content-type:application/json“),为什么要设置这个头部,别问我,我也不知道。这样我不能用$_post[‘’]这个方法接收了,$_get['']可以使用,我们可以用这个,json_decode(file_get_contents("php://input"),true);自己查一下手册,就明白这是什么了。
2.我们怎么知道对方提交的是什么的method,可以用这个。$_SERVER['REQUEST_METHOD']
3.为什么要删除way。呵呵你传进来的这个解析后的数组,你不要里面的参数了吗?难道 你的数据库里也有[way]='add';这个方法,那就当我没说,我们可以用这个函数unset();把这个[way]这个K掉
当我们执行了一遍这个DB流程回来,我们要发送json数据回去和HTTP code回去。
查询是要返回的,其他的返回一个标示就差不多了 。
发送回去的json:
{code:200,data:''}自己把要返回的数据拼进去,不返回数据的{code:200,msg:...};这个都可以自定义返回的,当然要写成一个文档
发送回去的httpd code:
网上要非常多介绍code的状态码,我想说城里的人真会玩,我不懂这个是状态码吗?我只是想怎么发回去罢了,看到最后都没发现。我也是服了。
http_response_code(200);
不懂有没有同学也会跟我一样,说这个函数没定义,这个时候你要自己定义一个函数了
不发个图感觉都不算是博客。
添加方法里面,我不是什么都听别人丢什么,我们就要什么的。
我们要把自己的字段表封装,就是把这个想要的 $data['oid'] = 给对方的字段,json解封下来所对应的字段,我们把自己想要的取下来,然后才放进去。这个是有必要的,当然我们也要问对面想要什么,我也发特定的回给他。
到这里restful api设计完毕了。没有什么设计方面的知识。有什么的大神大家一起交流,毕竟‘新手上路’;
----j.m