jersey

Java开发RESTful(一)概念入门

2018-01-18  本文已影响559人  叩丁狼教育

【原创文章,转载请注明原文章地址,谢谢!】

说明

新开一个专题,针对RESTful相关内容,从入门,到使用Java,主要是SpringMVC来完成RESTful开发。希望对刚接触RESTful的同学有所帮助

什么是RESTful

RESTful是代表REST化,或者说设计遵从REST架构。所以要了解RESTful就需要了解REST。而REST并不是一两句话能够简单说明清楚的,在本文中,尝试不要用那么高级的眼光去理解REST,而是放低身段,从实际的例子简单理解什么是REST。

简单理解REST

REST从字面上讲叫做Representational State Transfer,翻译成表现层状态转移,但是一般在翻译的时候,前面会加一个Resource,即Resource Representational State Transfer,即为资源表现层状态转移。

举一个简单的例子来阐述,比如一个优惠券功能,最基本需求:

不考虑具体的模型,单就请求路径来说,可能的路径如下:

至此,我们已经很清楚的看出来针对一个非常简单的需求,产生的问题:

当然,这样做是完全可以的,目前也有大量的应用是使用这种方式来开发的。但是我相信,在了解和熟悉了REST之后,下一个项目,你一定不会使用这种方式开发了。
那马上进入REST。如果使用REST的概念来设计这样一个需求,又会是什么样的呢?(注意,下面我会直接列出一些REST的概念,重点看效果)。

首先在REST中,需要抽象出一个叫做资源的概念,简单理解,资源就是我们要操作的对象,使用URL表示。例如,针对优惠券我们就可以抽象出两个资源:优惠券类型和优惠券(优惠券是根据某个优惠券类型来生成的,比如京东的到店10元红包,这是一个优惠券类型,具体你在这个优惠券类型里面领到的那个红包,是这个优惠券类型生成的一个优惠券);
优惠券类型:http://classes.wolfcode.cn/couponSettings
优惠券:http://classes.wolfcode.cn/coupons

这两个资源对应的URL就固定下来,不会再变了,换句话说,我们所有的需求,都围绕这两个URL进行。
下面来看具体的操作:

小结

通过上面的解释,我们简单来总结一波,什么叫REST?原意指表现层状态转移,我们今天只需要扩展一下这个概念,用人话讲,就是:客户端通过HTTP,对服务器端的资源进行操作,实现"表现层(使用HTTP动词去促使服务器端资源的)状态发生转化"。

PATCH http://classes.wolfcode.cn/coupons/1即:
客户端(浏览器)通过HTTP动作(PATCH)对服务器端的资源(id为1的coupons)进行操作,让这个资源的状态发生转变(从未使用变为已使用)!

WechatIMG7.jpeg
上一篇下一篇

猜你喜欢

热点阅读