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

    REST API 是什么 - 程序員與服務(wù)之間溝通的語(yǔ)言
    來(lái)源:湖北國菱計算機科技有限公司-荊州網(wǎng)站建設-荊州軟件開(kāi)發(fā)-政府網(wǎng)站建設公司 時(shí)間:2020-08-20

    任何語(yǔ)言的本質(zhì)都是一套規則的合集。比如說(shuō),中文里要求句子要有主謂賓,而作為母語(yǔ)為中文的我們,一旦有人說(shuō)了一句缺少主語(yǔ)的話(huà),我們會(huì )直覺(jué)性地感覺(jué)很奇怪。

    比如說(shuō),如果有人對你說(shuō)“是一個(gè)神人”。

    你會(huì )直覺(jué)地問(wèn):究竟誰(shuí)是一個(gè)神人?

    同樣的,在各個(gè)程序的溝通中,或者各個(gè)服務(wù)的溝通中,我們也需要類(lèi)似“語(yǔ)言”的東西,讓我們可以不需要太多的上下文,就可以前端理解后端、后端也理解前端。

    設想一下,有多少次你跟前端一起需要前后端 聯(lián)調?有多少次前端覺(jué)得你定義的 API 不夠方便直觀(guān),一定要你多返回一個(gè)參數或者改一下端點(diǎn)路徑?

    其實(shí)本質(zhì)上,你們在 聯(lián)調 時(shí)就是在嘗試設計一個(gè)“語(yǔ)言”,以方便互相可以更容易地理解對方。

    比如說(shuō),后端會(huì )要求前端說(shuō),你調用 POST /user/abc 就可以創(chuàng )建一個(gè)名為 abc 用戶(hù)了。

    短線(xiàn)來(lái)講這當然沒(méi)問(wèn)題,你們可以幾乎任意地定義 API 端點(diǎn),任意地調整傳遞的參數。但是一旦項目開(kāi)始變復雜,問(wèn)題就開(kāi)始出現了。

    首先大家有不同的經(jīng)驗和喜好,對 API 的定義可能千差萬(wàn)別,所謂眾口難調

    系統開(kāi)始復雜后,各個(gè)系統之間的 API 因為定義的人的不同,會(huì )開(kāi)始出現不一致,導致每個(gè)端口調用前需要詳細閱讀文檔(如果有的話(huà))或者與 API 設計者無(wú)窮無(wú)盡地討論和會(huì )議

    如果你的 API 是面向客戶(hù)的,比如如果你是一家軟件服務(wù)公司,那么你自定義的 API 會(huì )增加客戶(hù)接入的成本

    等等等等

    因此,要是有一套人類(lèi)通用的"語(yǔ)言“或者”規范“,來(lái)指導大家定義 API 的方式,那樣該多好?

    REST API 就是這樣一種規范,它是目前整個(gè)互聯(lián)網(wǎng)應用最廣泛的 API 規范。有意思的是,REST是由它的提出者 Roy Fielding 在他讀書(shū)期間,寫(xiě)的博士論文里提出的。


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