REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。可以降低开发的复杂性,提高系统的可伸缩性。
REST模式的Web服务明显的更加简洁
参考资料:
【Restful】三分钟彻底了解Restful最佳实践_陈晓婵-CSDN博客
自我总结RESTful:
1.网络上的所有东西都抽象为资源,并且这些资源都有一个资源标识符
2.它们一般通过(xml,json)格式来传输
3.请求是无状态的,并且对资源的操作不会改变资源标识符
在Restful之前的操作:
http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息
RESTful用法:
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user DELETE 删除用户信息
4.每次请求的接口或者地址不要做描述(query、save、update、delete),遵守get(查询)、post(新增)、put(修改)、delete(删除)
==================================================================================
常用的restful框架:Jersey Rest Client Vs RestEasy Client(相比而言它具有缓存特性:客户机“浏览器”缓存)
以下部分在csdn上摘抄
Jersey 的优点
- 优秀的文档和例子
- 快速
- 超级容易的路由
- 平滑的 JUnit 集成
- 可以集成到其它库/框架 (Grizzly, Netty). 这也可能是很多产品使用它的原因。
- 支持异步链接
- 不喜欢 servlet container? 使用Jersey的时候可以不用它们。
- WADL, XML/JSON support
- 包含在Glassfish中
Jersey的缺点
- Jersey 2.0+使用了有些复杂的依赖注入实现
- 可能不是一件坏事。Jersey 1.X 使用较老的 JAX-RS 实现
- 一大堆第三方库只支持 Jersey 1.X, 在 Jersey 2.X 不可用
==================================================================================
1. 在RESTFul设计里一切都是资源。
2. 无状态。
3. URL中通常不出现动词,只有名词
4. 使用HTTP的GET、POST、DELETE、PUT来表示对于资源的增删改查