1.关于RESTful

关于RESTful,在这个时代已经是让人耳熟能详的概念了,但是好像有没有人能把这个词解释清楚, 我认为,RESTful其实是一种基于特定uri编写风格的web项目,其本质是基于http协议web服务,说的更通俗一些,就是去搭建了一个web工程,发布到容器以后,其uri会以一种特定的形式出现,来表达不同的信息。

这里我们以一个SpringBoot的web项目为例,来创建一个RESTful 项目。

对了,这里还是要强烈安利下SpringBoot给没有用过的童鞋,比起手动去配置SpringMVC这东西不知道方便了多少倍。

在这里插入图片描述

只需要在Maven中添加这两个依赖就可以了,下面的两个依赖时测试和支持热修改的包。

这这里我们依照Spring官方的样例,搭建一些RESTful风格的API。和SpringMVC一样,写Controller

SpringBoot

这里需要注意的是SpringBoot中加入的新注解@RestControllerSpring官方钦定了使用这个注解以后就不能返回JSP页面了,就是更推荐返回JSON

在这里插入图片描述

可以看到这是访问结果。

有人就要问了,说了半天这RESTful不就是返回JSON的web应用吗?这样说没错,但是uri的设计必须要足够RESTful,那么怎么让自己网站的uri风格更RESTful参考 RESTfulAPI

2.关于webservice

为什么要说道webservice呢?看上去好像webserviceRESTful就不是一个东西,RESTful是一种风格或者说规范(这样说其实不太准确,因为没有明确的定义),而webservice确实是一种技术。

以今天的眼光来看,webservice其实已经过时了,本身这个技术的出现,就是为了跨平台,但是其实最好的跨平台方式目前来看是基于HTTP协议的web应用,当然符合RESTful的web应用更加便捷。

比如说安卓编程经常使用到的 okhttp 来获取一些后台web服务器发布的信息。亦或者跨平台使用其他编程语言获取RESTfulAPI发布的信息。前后端分离,更轻量级的JSON,这无疑都是最好的选择。

其实我想说的是,RESTful算是一种取代品,webservice本身就是一种重量级的规范,以发展的眼光来看,终究是轻量级取代重量级。

这两天学习系统间通信的时候,了解了这门技术,目前还有一些公司在使用这门技术,但是其实netty已经是Java中成熟的通信框架,应该更多地拥抱新时代的产物,包括使用SpringBoot快速搭建这种RESTful风格的微服务。

关于webservice的例子我也实在懒得补上了,这篇博客写的比较乱,因为个人总结比较多,这几天准备系统的学习一下netty在RPC框架中的作用,主要是为了学习dubbo原理吧。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐