美文网首页
RESTful API到底是什么?

RESTful API到底是什么?

作者: 明明你也一样 | 来源:发表于2020-01-16 10:31 被阅读0次

    首先明确一点,restful不是一个单词而是几个单词的首字母拼接成的,即REST -- REpresentational State Transfer 翻译过来就是:表现层状态转移。表现层状态转移?你看看你看看,这说的是人话吗?

    @Ivony 老师的一句话概括很精辟:

    URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

    简略解释

    1. REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(即REST风格的网络接口);
    2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:
      http://api.mj.com/v1/newsfeed: 获取某人的新鲜;
      http://api.mj.com/v1/friends: 获取某人的好友列表;
      http://api.mj.com/v1/profile]: 获取某人的详细信息;
    3. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
      GET 用来获取资源,
      POST 用来新建资源(也可以用于更新资源),
      PUT 用来更新资源,
      DELETE 用来删除资源。比如:
      DELETE http://api.mj.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
      POST http://api.mj.com/v1/friends: 添加好友
      UPDATE http://api.mj.com/v1/profile: 更新个人资料

    禁止使用: GET http://api.mj.com/v1/deleteFriend 图例:

    restful-api-best-practices.jpg
    1. Server和Client之间传递某资源的一个表现形式,比如用JSON,XML传输文本,或者用JPG,WebP传输图片等。当然还可以压缩HTTP传输时的数据(on-wire data compression)。
    2. 用 HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server服务器内部错误等。

    为什么使用RESTful API?

    大家都知道"古代"网页是前端后端融在一起的,比如之前的PHP,JSP等。在之前的桌面时代问题不大,但是近年来移动互联网的发展,各种类型的Client层出不穷,Web端不再用之前典型的PHP或JSP架构,而是改为前段渲染和附带处理简单的业务逻辑。RESTful可以通过一套统一的接口为 Web,iOS和Android平等提供服务。另外对于广大平台来说,比如微博开放平台,微信公共平台等,它们不需要有显式的前端,只需要一套提供服务的接口,于是RESTful更是它们最好的选择。所以如何正确地理解 RESTful 架构和设计好RESTful API就显得尤为重要。

    相关文章

      网友评论

          本文标题:RESTful API到底是什么?

          本文链接:https://www.haomeiwen.com/subject/pwffzctx.html