Leonard Richardson's Maturity Model
REST(Representational State Transfer, 即表述性状态传递),是一种软件架构风格,给出了一系列的设计约束/原则, 使得软件更易维护,性能更高。上图中的模型把REST原则分成四层:
- Level 0: The Swamp of POX. 需使用HTTP协议作传输。
- Level 1: Resource. 使用URIs来区分不用的资源。在REST风格中,任何东西都被看作资源,资源通过URI来访问。
- Level 2: HTTP Verbs. 使用GET, POST, PUT, DELETE等HTTP Method来操作资源, 对资源进行查、增、改、删。
- Level 3: Hypermedia Controls. HATEOAS。
URI里尽量避免出现动词,毕竟它表示的是某一资源的标识。对资源的CRUD操作用HTTP Method来表示。下面举个例子来体会一下:
POST /user/new HTTP/1.1
GET /user?id=1 HTTP/1.1
POST /user/1 HTTP/1.1
GET /deleteUser/1 HTTP/1.1
POST /users HTTP/1.1
GET /users/1 HTTP/1.1
PUT /users/1 HTTP/1.1
DELETE /users/1 HTTP/1.1
上述两组四种操作分别代表对user这个资源的增查改删,显然后一组更整洁、更规范。
参考:
- http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming
- http://spring.io/guides/tutorials/bookmarks/
- http://www.restapitutorial.com/index.html
- http://en.wikipedia.org/wiki/REST
- http://stackoverflow.com/questions/1139095/actual-examples-for-hateoas-rest-architecture