restful api php设计
2018-06-22 04:59:10来源:未知 阅读 ()
作为一个新手程序员,刚上班不久就被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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:随笔
下一篇:linux文件文件夹递归监控
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash