博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
restful api php设计
阅读量:5751 次
发布时间:2019-06-18

本文共 1842 字,大约阅读时间需要 6 分钟。

  作为一个新手程序员,刚上班不久就被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

 

转载于:https://www.cnblogs.com/ncjm/p/6019396.html

你可能感兴趣的文章
setprecision后是要四舍五入吗?
查看>>
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>