搜索

首页  >  问答  >  正文

php - restful api和普通的接口有什么不同吗?

看了一下网上对 restful api的解释,我感觉这个和我们平时写的接口没什么不同啊,都是通过HTTP的get或者post请求传输数据,返回json格式或者xml格式。

就算 restful api多了这些请求方式:
PUT:在服务器更新资源(客户端提供完整资源数据)

DELETE:从服务器删除资源

HEAD : 从服务器获取报头信息(不是资源)

但是他们最多只是一种传输数据的方式而已,比如说 DELETE是删除资源,我们要删除一篇文章,是不是要传一个文章ID到服务器,但是具体的逻辑代码还不是和普通的接口一样的写法,我直接用get传文章ID不就行了吗,为什么要用DELETE传输方式呢?

感觉我还是对restful api理解的还不够,现在还体会不到他与普通的接口有什么不一样

迷茫迷茫2757 天前919

全部回复(2)我来回复

  • ringa_lee

    ringa_lee2017-05-16 13:13:54

    RESTful API 只是API的设计规范或者是一套设计理论。

    单就URL和Method这两个点,你可以这样理解: URL 是用来唯一标示一个互联网资源的,而 Method 是用来标识当前请求对该资源进行什么操作。

    你当然可以 GET http://www.xx.com/user?id=123 来删除一个用户,但这是不符合 RESTful API 规范的。

    符合RESTful API规范应该是 DELETE http://www.xx.com/user/123。

    这里 http://www.xx.com/user/123 用来标识一个互联网资源(某个站点的一个用户),DELETE 用来标识我这次请求是要删除一个用户。

    比如我要获取这个用户的详细信息,那么我的请求时:GET http://www.xx.com/user/123,这里还是相同的URL,但是我用GET方式请求,服务端就应该知道我只是要获取资源信息,而不是删除。

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:13:54

    个人对Restful api的理解是,更能清晰的去告诉别人这个操作是做什么。你当然可以使用get方式取删除数据,但是没有delete来的清晰。
    每种框架对Restful api都有自己的定义方式(比如laravel和Yii2对Restful api的方法的命名就是不同的),但是两种不同的定义方式,都有共同点,就是对应增删改查方法名称都是定好的。这种情况,开发人员去做开发的时候,就能比较清晰的去了解这个方法到底是用来做什么的。至少命名上看起来清晰很多。
    个人愚见.....

    回复
    0
  • 取消回复