发表于: 2018-01-05 23:55:09

1 578


今天完成的事情:

完成SSM整合的一个CRUDREST风格

深度思考

8.1 什么是restfulrest的请求方法有哪些,有什么区别?

Representational State Transfer的缩写。"表现层状态转化"

Roy Thomas Fielding在他2000年的博士论文中提出的。Fielding是一个非常重要的人,他的目的是得到一个功能强、性能好、适宜通信的以网络为基础的应用软件的架构。

简单来讲,就是使用一套规范来规定  客户端-服务器  这种模式下 通信双方的API(不是协议)

再简单点说

对通信双方做了 /// 的操作的   参数(也就是HTTP协议的各项参数)  做了规范。

 

要点如下:

     

图中是一个HTTP协议的请求报文:

REST风格指的是:

看报文的Url字段就知道要什么(URI表示资源,又成为路径/终点(endpoint)

看报文的method字段就知道干什么(method字段表示操作)

使用 ?key=value 来筛选

使用状态码对应相应处理结果

hypermedia api返回结果中提供链接,连向其他API方法


阮一峰博客: http://www.ruanyifeng.com/blog/2014/05/restful_api.html 

还有这篇 https://jimmylv.gitbooks.io/learning-microservices/content/best-practice/what_really_REST_is.html

 

 

 常用的请求方法及区别:

GETSELECT):从服务器取出资源(一项或多项)。

POSTCREATE):在服务器新建一个资源。

PUTUPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

PATCHUPDATE):在服务器更新资源(客户端提供改变的属性)。

DELETEDELETE):从服务器删除资源。

 

所以CRUDREST这么设计:

数据表

url网址

http method

数据库操作

 

student

/students

POST

CREATE

新建一个学生

/students

GET

SELECT

获取全部学生

/students/1

获取指定id的学生

/students/1

DELETE

DELETE

删除指定id的学生

/students/1-2-3

删除多个学生

/students/1

PUT

UPDATE

更新指定id的学生

controller层写好处理方法,调用service(因为逻辑简单,service层没有做什么处理),再调用DAO(SSM中就是mapper)进行对数据库的操作。

 

为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?

为什么用?说实话,完全是没办法才用的,客户端类型层出不穷,只好出规范了。

移动互联网的影响,导致一个服务器面对多种客户端(浏览器、安卓、ios),需要一套统一的API,趋势选择的RESTful,因为REST2000年提出的,直到苹果ios引领,安卓参与,移动互联网爆发,才真正广泛使用,因为有了需求,才有了用武之地。

不用Rest,就是以前的,没有什么规则,URI经常有动词表示操作,get有时也提交数据,post经常用来更新资源,总之比较混乱。并没有统一的规范.

解决昨天的问题,怎么解决明天写吧,跟深度思考一个问题一样。


明天计划的事情

原生servlet、springmvc前端处理器、tomcat

遇到的问题:


收获:

在上面。



返回列表 返回列表
评论

    分享到