展開
湖北國(guó)聯(lián)計(jì)算機(jī)科技有限公司
  • 首頁HOME
  • 公司簡(jiǎn)介INTRODUCTION
  • 安全防御DEFENSE
  • 軟件開發(fā)SOFTWARE
  • 物聯(lián)網(wǎng)IOT
  • 運(yùn)行維護(hù)SRE
  • 成功案例CASE
  • 聯(lián)系我們CONTACT
  • Software Technology Sharing |技術(shù)分享

    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 在他讀書期間,寫的博士論文里提出的。


    荊州地區(qū)政府網(wǎng)站建設(shè) 解決方案 專業(yè)團(tuán)隊(duì) 騰訊第三方平臺(tái) 地址:湖北省荊州市沙市區(qū)荊沙大道楚天都市佳園一期C區(qū)29棟112       地址:湖北省松滋市新江口街道才知文化廣場(chǎng)1幢1146-1151室     郵編:434200 聯(lián)系電話:0716-6666211     網(wǎng)站編輯部郵箱:business@gl-ns.com 鄂公網(wǎng)安備 42100202000212號(hào) 備案號(hào):鄂ICP備2021015094號(hào)-1     企業(yè)名稱:湖北國(guó)菱計(jì)算機(jī)科技有限公司