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