欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
REST
您可以在Wikipedia上了解到此条目的英文信息 REST Thanks, Wikipedia. |
Representational State Transfer (REST)
REST软件架构是当今世界上最成功的互联网的超媒体分布式系统。
Google、Amazon等已经采用了REST技术作为网络服务
在Java语言中重要的两个以SOAP技术开始的网络服务框架XFire和Axis也把REST作为自己的另一种选择。它们的新的项目分别是Apache CXF 和Apache Axis2 。Java语言也制定关于REST网络服务规范:JAX-RS: Java API for RESTful Web Services (JSR 311)。
REST 与全堆栈 Web 服务根本不同,主要原因有三个:
- REST 的核心抽象是远程资源而不是远程过程调用。
- REST 没有发明一个详尽的标准列表,而是采用现有的 Internet 标准,包括 HTTP、XML 和 TCP/IP。
- REST 没有覆盖每个可能场景,而是覆盖了最常见的问题。
REST 可以:
- 用 TCP/IP 命名标准命名 Web 上的资源
- 用 HTTP 查询和操纵这些资源
- 使用基于文本的标准消息格式(例如 XML 或 HTML)来构造数据
Architectural Styles and the Design of Network-based Software Architectures
HTTP and CRUD
The most important HTTP are POST, GET, PUT and DELETE. These are often compared with the CREATE, READ, UPDATE, DELETE (CRUD) operations associated with database technologies
The following table associates several common HTTP verbs with similar database operations, however the meaning of the HTTP verbs do not correspond directly with a single database operation. For example, an HTTP PUT is used to set the value of a resource and may result in either a creation or update as needed.
HTTP | CRUD |
---|---|
POST | Create, Update, Delete |
GET | Read |
PUT | Create, Update |
DELETE | Delete |
开源项目
- Restlet
- Jersey
- Ext JS
- Apache CXF
- Recess
- Symfony
- Zend Framework
- CakePHP
- CodeIgniter
- Ruby on Rails
- TurboGears
链接
<discussion>characters_max=300</discussion>