架構 RESTful的架構思想

2022-01-15 17:20:03 字數 1534 閱讀 3371

把軟體(software)、平台(platform)、基礎設施(infrastructure)做成服務(service)是很多it企業都一直在做的事情,這就是大家經常聽到的sass(軟體即服務)、pass(平台即服務)和iass(基礎設定即服務)。實現面向服務的架構(soa)有諸多的方式,包括rpc(遠端過程呼叫)、web service、rest等,在技術層面上,soa是一種抽象的、鬆散耦合的粗粒度軟體架構;在業務層面上,soa的核心概念是「重用」和「互操作」,它將系統資源整合成可操作的、標準的服務,使得這些資源能夠被重新組合和應用。在實現soa的諸多方案中,rest被認為是最適合網際網路應用的架構,符合rest規範的架構也經常被稱作restful架構。

rest這個詞,是roy thomas fielding在他2023年的博士**中提出的,roy是http協議(1.0和1.1版)的主要設計者、apache伺服器軟體主要作者、apache**會第一任主席。在他的博士**中,roy把他對網際網路軟體的架構原則定名為rest,即representational state transfer的縮寫,中文通常翻譯為「表現層狀態轉移」或「表述狀態轉移」。

訪問乙個**,就代表了客戶端和伺服器的乙個互動過程。在這個過程中,勢必涉及到資料和狀態的變化。web應用通常使用http作為其通訊協議,客戶端想要操作伺服器,必須通過http請求,讓伺服器端發生「狀態轉移」,而這種轉移是建立在表現層之上的,所以就是「表現層狀態轉移」。客戶端通過http的動詞get、post、put(或patch)、delete,分別對應對資源的四種基本操作,其中get用來獲取資源,post用來新建資源(也可以用於更新資源),put(或patch)用來更新資源,delete用來刪除資源。

簡單的說restful架構就是:「每乙個uri代表一種資源,客戶端通過四個http動詞,對伺服器端資源進行操作,實現資源的表現層狀態轉移」。

請求方法(http動詞)

uri解釋

get/students/

獲取所有學生

post

/students/

新建乙個學生

get/students/id/

獲取指定id的學生資訊

put/students/id/

更新指定id的學生資訊(提供該學生的全部資訊)

patch

/students/id/

更新指定id的學生資訊(提供該學生的部分資訊)

delete

/students/id/

刪除指定id的學生資訊

get/students/id/friends/

列出指定id的學生的所有朋友

delete

/students/id/friends/id/

刪除指定id的學生的指定id的朋友

程式架構思想

程式的架構的思想可以問下面此問題 1.目的 為什麼才有此架構?2.效果 使用此架構後,前後的效果會發生什麼變化。3.成本 使用此架構後開發的週期和成本。4.競品 此類產品的競品是什麼,有沒有更好的方案。4.優缺點 如 為什麼使用spring 目的 解耦,模組化,關注業務 效果 程式模組化,由容器管理...

REST RPC架構思想

rest rpc是乙個改進版的rpc架構,它是為了解決傳統的rpc和rest方案的一些不足之處而生的,它結合了rest api和rpc的優點,同時又克服了rest api和rpc的缺點。我們先來看看傳統的rpc和rest api方案的優點和一些不足之處。傳統的rpc一般是基於protobuf或thr...

JAVA構建架構思想

現在我如果作為一名架構師,我要構建乙個專案。這個專案作為乙個單一機器上執行的專案,而且暫時使用者不會很多,所以我的想法是不考慮分布式部署。暫時先考慮一台機器上進行部署。基於系統的反應和響應時間來說,基於springmvc hibernate是最佳的選擇。springmvc作為mvc控制器,完全可以完...