在我們前後端交互過程中,我們經常提到一個英文單詞RESTful,那麼什麼是RESTful接口呢?
REST,全稱Resource Representational State Transfer,翻譯成中文是表現層狀态轉移,估計沒幾個人看懂這個中文的意思。要理解他的意思,可能要從遠古的互聯網談起,上了年紀的程序員應該知道,一開始的網頁是真個網頁無論樣式或者數據都是從後端吐出的,随着互聯網的發展,客戶端越來越多,所以我們需要前後分離,才能一個後台系統服務多個不同客戶端,而這個REST,正是用來解決這一種情況。所以,通俗易懂地講,REST是中文意思可以理解為資源在網絡中以某種表現形式地轉移。
REST是由美國人倫納德·理查德森提出來一套軟件接口設計的模型,今天我們就以最通俗易懂的方法,來解釋下什麼是REST風格接口。
這個模式就好比我們在餐廳吃飯,見到個工作人員,就跟他說,加一份炸雞,對方會跟你打一張單過來。翻譯成程序語言,就是新增一個接口。
{ "addOrder":{ "itemName":"addFriedChicken", } }
同樣,現在很多倉聽都會有會員卡服務,我們可以随便找一個服務人員,問他你的會員卡積分餘額是多少。同樣,我們翻譯成程序的接口,如下所示。
{ { "queryVipCard":"{cardid}" } }
Level1 指定資源在上述例子中,我們每次都是随便找一個服務員,也就是當我們訪問一個網站的時候,隻約定了地址、端口跟IP,每次都請求同一個地址,後端再來判斷是要訪問哪一個資源。
随着飯店的發展,老闆可能會對服務人員進行分工,像一些大型的餐廳,有人負責打掃衛生,有人負責結賬等等。
所以,你想點菜的時候,必須指定點菜的服務生,想查詢會員的時候,必須去前台找對應的前台服務員,想反饋的時候,要找大堂經理等等。
同樣,翻譯成程序語言,會變成這樣。
/order { "addOrder":{ "itemName":"addFriedChicken", } }
相對于上面的例子,這裡雖然隻是增加一個反斜杠,但意義卻不一樣了,增加了具體的資源指定。
相對于Level1,Level2則更為嚴格,要求你帶上指定的方法,在Http請求中,我們常用的有Get,Post等方法,所以,我們去查詢會員卡餘額的時候,隻要讓前台知道你是個Get請求即可,就知道你要查詢會員卡。
/card Method=Get { { ${會員卡号} } }
Level3 返回鍊接我們可能還想把整個請求變得更加簡潔,例如在上述例子中,我們還需要去傳遞一個會員卡号,我們能不能把會員卡号這個東西也去掉呢?答案是可以的,那便是用戶一進店的時候,便把所有的操作的鍊接都返回給用戶,用戶想進行什麼操作就點擊什麼鍊接。
其實,在線上前端開發與後台開發的交互過程中,更多的是采用Level2的形式。可能上述的描述還比較難以理解,那麼傳授給你2句口訣,保證立馬理解RESTful的含義,那便是:看Url就知道要什麼,看http method就知道幹什麼!
好了,今天關于REST我們就介紹歡迎大家關注我,近期還準備了一些AI相關的知識,整理後會和大家繼續分享。大家的支持是我繼續唠嗑的動力。同名公衆号(沙茶敏碎碎念)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!