REST面向資源架構 RESTful架構

  REST基礎概念:

  • 在REST中的一切都被認為是一種資源。
  • 每個資源由URI標識。
  • 使用統一的接口。處理資源使用POST,GET,PUT,DELETE操作類似創建,讀取,更新和刪除(CRUD)操作。
  • 無狀態。每個請求是一個獨立的請求。從客戶端到服務器的每個請求都必須包含所有必要的信息,以便于理解。
  • 通信都是通過展現。例如XML,JSON

  以狀態為角度,提出將狀態移植到客戶端處理的新思路。 提出一個既適于客戶端應用又適于服務端的應用的、統一的Web視圖。適合B/S C/S S/S。 HTTP客戶端與HTTP服務器之間的差別,對架構來說無所謂。一個軟件應可以既充當Web客戶端又充當Web服務器,而無須采用兩套完全不同的APIs。

  提供資源操作方法的統一:POST, GET, PUT, DELETE ,以超文本或超媒體驅動(hypertext/Hypermedia)的狀態轉移是REST架構核心。 操作帶來狀態變化,狀態轉移遍歷使用鏈接導航方式實現。

  如下圖:首先通過GET方法訪問/well-known-uri(1)獲得當前所有資源(2),然后選擇其中一個資源名FooService通過Get方法訪問/well-known-uri/foo(3),這樣得到foo下的資源列表。

rest

  foo可能是一個領域模型或其他代表業務核心的資源,假設foo是訂單,用戶如果希望改變訂單狀態,比如撤銷訂單,一旦點按撤銷訂單按鈕,客戶端將向/well-known-uri/foo/reverse發出PUT命令(5),代表撤銷訂單,這其實一個修改訂單狀態的命令。

  客戶端再次發出GET命令(6),獲得狀態已經改變的結果。

  值得注意的是,當發出PUT命令后,不是通常由服務器端立即返回業務操作結果,而是返回Http的200,表示PUT操作完成,具體業務結果必須由客戶端再次根據第三步獲得的資源列表中URI資源,再次由客戶端發出查詢命令獲得(6)。

 

 

文章和教程:

10個有關RESTful API良好設計的最佳實踐

六個強大的創建RESTful服務的Java框架

為什么RESTful微服務和異步編程是未來趨勢?

微服務架構快速指南

QBit微服務microservice教程

Netflix hystrix入門教程

使用Dropwizard開發輕量RESTful服務

Dropwizard與Spring Boot比較

使用vert.x 2.0, RxJava 和 mongoDB創建一個簡單的RESTful服務

MEAN: AngularJS + NodeJS的REST API開發教程

基于Fibers開發Node.js的ExpressJS Restful服務

用Jersey開發RESTful服務

JavaEE 7的RESTful web服務

使用Apache CXF開發RESTful服務

Spring RESTful服務源碼案例下載

REST與DDD

為什么要使用MVC+REST+CQRS架構

沒有人真正理解REST or HTTP

REST真相

REST vs. SOAP

各種Java序列化性能比較

Java應用服務器死了

使用Scala和Spray實現REST

使用Scala的Akka HTTP,Akka Stream和Reactive Mongo建立REST服務

Lagom是一個集成ES/CQRS的Reactive微服務框架

使用Spring Cloud和Reactor在微服務中實現EventSourcing

一個分布式異步RESTful框架原型案例代碼

JSON Web Tokens(JWT)教程

用啤酒和樂高解釋什么是API

微服務API管理模式

相關專題

微服務

更多REST RESTful架構

API專題

一级黄色录像影片 夫妻性生活影片 免费在线观看 一级a做爰片