zoukankan      html  css  js  c++  java
  • RESTful-2一分钟理解什么是REST和RESTful

    从事web开发工作有一小段时间,REST风格的接口,这样的词汇总是出现在耳边,然后又没有完全的理解,您是不是有和我相同的疑问呢?那我们一起来一探究竟吧!

    就是用URL定位资源,用HTTP描述操作。

    知乎大神Ivony有句话说的好:

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

    咱们不解释REST是哪几个单词的首字母,说了也不知道,翻译成中文就是表现层状态转移,我是弄不懂。

    在设计web接口的时候,REST主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型来区分。

    比如,我们有一个friends接口,对于“朋友”我们有增删改查四种操作,怎么定义REST接口?

    增加一个朋友,uri: generalcode.cn/v1/friends 接口类型:POST

    删除一个朋友,uri: generalcode.cn/va/friends 接口类型:DELETE

    修改一个朋友,uri: generalcode.cn/va/friends 接口类型:PUT

    查找朋友,uri: generalcode.cn/va/friends 接口类型:GET

    上面我们定义的四个接口就是符合REST协议的,请注意,这几个接口都没有动词,只有名词friends,都是通过Http请求的接口类型来判断是什么业务操作。

    举个反例:generalcode.cn/va/deleteFriends 该接口用来表示删除朋友,这就是不符合REST协议的接口。

    一般接口的返回值是JSON或者XML类型的,笔者在互联网的工作经验一般都是JSON类型的。

    用HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误,403表示Bad Request等。(反例:传统web开发返回的状态码一律都是200,其实不可取。)

    那这种风格的接口有什么好处呢?前后端分离。前端拿到数据只负责展示和渲染,不对数据做任何处理。后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口,是不是很爽?!

    IT黑马
  • 相关阅读:
    【今日CV 视觉论文速览】 19 Nov 2018
    【numpy求和】numpy.sum()求和
    【今日CV 视觉论文速览】16 Nov 2018
    【今日CV 视觉论文速览】15 Nov 2018
    poj 2454 Jersey Politics 随机化
    poj 3318 Matrix Multiplication 随机化算法
    hdu 3400 Line belt 三分法
    poj 3301 Texas Trip 三分法
    poj 2976 Dropping tests 0/1分数规划
    poj 3440 Coin Toss 概率问题
  • 原文地址:https://www.cnblogs.com/hmit/p/10785510.html
Copyright © 2011-2022 走看看