欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
REST
小 (→开源项目) |
|||
(未显示1个用户的24个中间版本) | |||
第1行: | 第1行: | ||
+ | {{top news}} | ||
+ | {{SeeWikipedia|Representational State Transfer}} | ||
+ | |||
Representational State Transfer (REST) | Representational State Transfer (REST) | ||
第5行: | 第8行: | ||
Google、Amazon等已经采用了REST技术作为网络服务 | Google、Amazon等已经采用了REST技术作为网络服务 | ||
− | 在Java语言中重要的两个以SOAP技术开始的网络服务框架XFire和Axis也把REST作为自己的另一种选择。它们的新的项目分别是[[Apache CXF]] 和[[ | + | 在Java语言中重要的两个以SOAP技术开始的网络服务框架XFire和Axis也把REST作为自己的另一种选择。它们的新的项目分别是[[Apache CXF]] 和[[Apache Axis]]2 。Java语言也制定关于REST网络服务规范:JAX-RS: Java API for RESTful Web Services (JSR 311)。 |
REST 与全堆栈 Web 服务根本不同,主要原因有三个: | REST 与全堆栈 Web 服务根本不同,主要原因有三个: | ||
第19行: | 第22行: | ||
* 使用基于文本的标准消息格式(例如 XML 或 HTML)来构造数据 | * 使用基于文本的标准消息格式(例如 XML 或 HTML)来构造数据 | ||
− | http:// | + | [http://docs.huihoo.com/rest/rest-dissertation/top.htm 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. | |
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! HTTP | ||
+ | ! CRUD | ||
+ | |- | ||
+ | | POST | ||
+ | | Create, Update, Delete | ||
+ | |- | ||
+ | | GET | ||
+ | | Read | ||
+ | |- | ||
+ | | PUT | ||
+ | | Create, Update | ||
+ | |- | ||
+ | | DELETE | ||
+ | | Delete | ||
+ | |} | ||
==开源项目== | ==开源项目== | ||
+ | *[[Swagger]] | ||
+ | *[[Kong]] | ||
+ | *[[Django REST framework]] | ||
+ | *[[Spray]] | ||
+ | *[[Apache Knox]] | ||
+ | *[[Apache Wink]] | ||
+ | *[[ng-admin]] | ||
+ | *[[PostgREST]] | ||
+ | *[[Dropwizard]] | ||
+ | *[[REST Commander]] | ||
+ | *[[Restlet]] | ||
*[[Jersey]] | *[[Jersey]] | ||
+ | *[[Ext JS]] | ||
+ | *[[Apache CXF]] | ||
+ | *[[Recess]] | ||
+ | *[[Symfony]] | ||
+ | *[[Zend Framework]] | ||
+ | *[[CakePHP]] | ||
+ | *[[CodeIgniter]] | ||
+ | *[[Rails|Ruby on Rails]] | ||
+ | *[[TurboGears]] | ||
+ | |||
+ | ==文档== | ||
+ | *[http://docs.huihoo.com/rsaconference/usa-2012/Enteprise-Access-Control-Patterns-for-REST-and-Web-API.pdf Enteprise Access Control Patterns for REST and Web API] | ||
+ | *[http://docs.huihoo.com/javaone/2015/CON2885-RESTful-Microservices.pdf RESTful Microservices] | ||
+ | |||
+ | ==链接== | ||
+ | *[https://github.com/marmelab/awesome-rest Awesome REST] [[image:awesome.png]] | ||
+ | *[http://docs.huihoo.com/rest/ REST文档] | ||
+ | *[https://github.com/Microsoft/api-guidelines Microsoft REST API Guidelines] | ||
+ | *[http://www.infoq.com/cn/articles/how-to-design-a-good-restful-api 如何设计好的RESTful API?] | ||
+ | |||
+ | [[category:REST]] | ||
+ | [[category:API]] | ||
+ | [[category:architecture]] |
2017年9月26日 (二) 08:12的最后版本
您可以在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 |
[编辑] 开源项目
- Swagger
- Kong
- Django REST framework
- Spray
- Apache Knox
- Apache Wink
- ng-admin
- PostgREST
- Dropwizard
- REST Commander
- Restlet
- Jersey
- Ext JS
- Apache CXF
- Recess
- Symfony
- Zend Framework
- CakePHP
- CodeIgniter
- Ruby on Rails
- TurboGears