restful api php设计

2018-06-22 04:59:10来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  作为一个新手程序员,刚上班不久就被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文件文件夹递归监控