REST ful 介面的設計

2021-08-25 08:30:11 字數 1611 閱讀 1565

1、web服務請求都涉及的三個步驟:

第一步:準備好要放入http請求的資料:http方法、uri、http報頭,以及(對於採用put或post方法的請求而言)需要放進求情實體裡的文件;

第二步:把這些資料格式化為乙個http請求,然後把該http請求傳送給正確的http伺服器;

第三步:把伺服器返回的資料(響應**、報頭及實體主體)解析為乙個資料結構,工程式使用。

2、rest是一種架構,面向資源的架構,其淨重對手是rpc;特點是將方法資訊和作用域資訊都放在uri中。

3、封裝庫簡化了web服務程式設計,因為封裝的api是專門針對特定服務定製的,根本不需要你了解http.

4、客戶端的功能不論,經過大致一樣,首先需要和伺服器的443埠建立起tcp/ip套接字連線,然後傳送http請求,服務端做出響應後,關閉該套接字連線;

5、http報文頭和實體主體,請求類的http報文的實體是空的,返回的報文的實體包含內容,這個實體可以是xml,可以使資料結構,也可以是jpeg等格式的;

6、現在的程式語言都至少有乙個用於傳送http請求的庫,但是並不是所有的這些庫都能排上用處。要構建乙個完全通用的web服務客戶端,你需要具備具備以下特徵的http庫。

1)必須支援https和ssl證書驗證;

2)它必須支援只要的http方法;

3)它必須允許程式設計師定製put或post請求實體主體裡的資料;

4)它必須允許程式設計師定製請求的http報頭;

5)它必須允許程式設計師獲取http響應的響應**及報頭,而不是僅能獲取http響應的實體主體;

6)它必須支援通過http**進行http通訊。

7、實體主體是http響應最重要的部分。就web而言,實體主體通常是乙個xml文件,其中包含客戶端所需的大部分資訊。這些資訊經過xml解析器解析之後,便可以為客戶端所用;

8、雖然大多數web服務返回的都是xml文件,不過也有web服務返回的是json字串的簡單資料結構。json非常簡單,但是為什麼不總是採用json,而要用xml,json適用於表達資料結構;而web提供的主要是文件------一種不規則的、自描述的、互相鏈結的資料結構。xml和htlm專門用於表達文件。假如用json來表示乙個網頁,那會很難看,就像用xml來表示陣列一樣難看。

9、rest並不是一組架構,而是設計原則; roa是面向資源的架構。

10、資源?什麼是資源?任何事物,只要具有被引用的必要,它就是資源。資源必須擁有乙個唯一的uri才有意義。

成為rest式**,並不是輕而易舉的。乙個經過良好設計的**,其資源的命名應該是有意義的,其資源的表示是整齊有序、且可以通過http get來訪問的。

如何根據需求建立唯讀資源?

1)規劃資料集

2)把資料集劃分為資源

3)用uri為該資源命名

4)設計發給客戶端的表示

5)用超連結和表單把該資源與已有資源聯絡起來;

6)考慮有哪些典型的事件經過;

7)考慮可能出現哪些錯誤情況

在下面的內容中逐步按照上面的步驟生成乙個具有跟web一樣的工作方式的rest式web服務。

規劃資料集

設計乙個web服務,首先要有乙個資料集或至少是乙個關於資料集的設想。該資料是你將要暴露的,或者想讓你的使用者構建的。

Restful介面設計

rest是英文representational state transfer 表象性狀態轉變 或者表述性狀態轉移 rest是web服務的一種架構風格 使用http,uri,xml,json,html等廣泛流行的標準和協議 輕量級,跨平台,跨語言的架構設計 它是一種設計風格,不是一種標準,是一種思想 ...

thinkphp3 2 restful介面的實現

參考thinkphp3.2手冊 專題 restful rest representational state transfer表述性狀態轉移 是一種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的可伸縮性.restful藉口的實現必不可少的便是路由的運用。url route rules...

介面的設計

佘士東 08 41 47 我設計乙個介面,其中有些方法很類似,比如取得某個工作物件,有可能需要獲得多個,也有可能獲得其中乙個,引數為工作物件的名字 名字列表。我是用窄介面還是寬介面好,是用乙個最大功能的方法還是多個過載方法好?比如 iservice public worker getworker s...