REST API 是什么 - 程序員與服務之間溝通的語言
來源:湖北國菱計算機科技有限公司-荊州網(wǎng)站建設-荊州軟件開發(fā)-政府網(wǎng)站建設公司
時間:2020-08-20
任何語言的本質(zhì)都是一套規(guī)則的合集。比如說,中文里要求句子要有主謂賓,而作為母語為中文的我們,一旦有人說了一句缺少主語的話,我們會直覺性地感覺很奇怪。
比如說,如果有人對你說“是一個神人”。
你會直覺地問:究竟誰是一個神人?
同樣的,在各個程序的溝通中,或者各個服務的溝通中,我們也需要類似“語言”的東西,讓我們可以不需要太多的上下文,就可以前端理解后端、后端也理解前端。
設想一下,有多少次你跟前端一起需要前后端 聯(lián)調(diào)?有多少次前端覺得你定義的 API 不夠方便直觀,一定要你多返回一個參數(shù)或者改一下端點路徑?
其實本質(zhì)上,你們在 聯(lián)調(diào) 時就是在嘗試設計一個“語言”,以方便互相可以更容易地理解對方。
比如說,后端會要求前端說,你調(diào)用 POST /user/abc 就可以創(chuàng)建一個名為 abc 用戶了。
短線來講這當然沒問題,你們可以幾乎任意地定義 API 端點,任意地調(diào)整傳遞的參數(shù)。但是一旦項目開始變復雜,問題就開始出現(xiàn)了。
首先大家有不同的經(jīng)驗和喜好,對 API 的定義可能千差萬別,所謂眾口難調(diào)
系統(tǒng)開始復雜后,各個系統(tǒng)之間的 API 因為定義的人的不同,會開始出現(xiàn)不一致,導致每個端口調(diào)用前需要詳細閱讀文檔(如果有的話)或者與 API 設計者無窮無盡地討論和會議
如果你的 API 是面向客戶的,比如如果你是一家軟件服務公司,那么你自定義的 API 會增加客戶接入的成本
等等等等
因此,要是有一套人類通用的"語言“或者”規(guī)范“,來指導大家定義 API 的方式,那樣該多好?
REST API 就是這樣一種規(guī)范,它是目前整個互聯(lián)網(wǎng)應用最廣泛的 API 規(guī)范。有意思的是,REST是由它的提出者 Roy Fielding 在他讀書期間,寫的博士論文里提出的。