今天偶然看到了Restful,来做一个小总结。
Restful:
一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
这是一个较为正式的说法,其实简单来说Restful就是一种编程的设计风格,这个风格可以带给我们一些便利。
Restful架构的主要原则
网络上的所有事物都被抽象为资源
每个资源都有一个唯一的资源标识符
同一个资源具有多种表现形式(xml,json等)
对资源的各种操作不会改变资源标识符
所有的操作都是无状态的
符合REST原则的架构方式即可称为RESTful
其最大的体现就是在URI资源的定位
我们举个例子,
level 0:
我们可以理解为面向前台
{
"addOrder": {
"orderName": "la"
}
}
我们可以简单看出这是一个增加的请求,不过单纯这样判定,前台只能通过addorder分辨出我们是什么请求
level 1:面向资源
/orders
{
"addOrder": {
"orderName": "la"
}
}
上了一层楼梯之后,我们可以看出,我们知道了这个是一个面向order资源,更加容易一些被识别
level 2:面向http,即打上网页的标注。
我们知道
因此我们可以更为简便,更容易让人明白,这是一个什么东西
POST /orders
{
"orderName": "la"
}
resultful设计风格便是让uri变得更为理想,更容易读懂。
类似如此,同时springmvc也是对于Resultful风格提供了支持。
我们可以发现,其实springMVC的URI的模式也是有点类似该风格,更加便于理解。
其最大的优点,便是统一了接口和资源地址,一种较好的设计风格。