軟件開(kāi)發(fā)中常說(shuō)的RESTful風(fēng)格API究竟是什么

軟件開(kāi)發(fā)中常說(shuō)的RESTful風(fēng)格API究竟是什么?

軟件編程指南 2018-07-03 06:44:00

一說(shuō)到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺(tái)通信方式。”但是在要求詳細(xì)講述它所提出的各個(gè)約束,以及如何開(kāi)始搭建REST服務(wù)時(shí),卻很少有人能夠清晰地說(shuō)出它到底是什么,需要遵守什么樣的準(zhǔn)則。在您將看到的這一篇文章中,我們將對(duì)REST,尤其是基于HTTP的REST服務(wù)進(jìn)行詳細(xì)地介紹。通過(guò)這些文章,您不僅可以了解到什么是REST,更能清晰地了解到您在編寫(xiě)REST服務(wù)時(shí)所需要遵守的各個(gè)守則,設(shè)計(jì)RESTful API時(shí)需要考慮的各種因素以及實(shí)現(xiàn)過(guò)程中可能遇到的問(wèn)題等內(nèi)容。

目錄

  1. Rest關(guān)鍵詞解釋
  2. REST概念
  3. REST遇到的問(wèn)題及示例
  4. 總結(jié)

一. Rest關(guān)鍵詞解釋

  1. REST(Representational State Transfer):表述性狀態(tài)轉(zhuǎn)移
  2. Rest是web服務(wù)的一種架構(gòu)風(fēng)格,一種輕量級(jí),跨平臺(tái),跨語(yǔ)言的架構(gòu)設(shè)計(jì);

二. Rest概念

在RESTful架構(gòu)中,每個(gè)網(wǎng)址代表一種資源(resource),所有網(wǎng)址請(qǐng)求接口中不能有動(dòng)詞,只能有名詞,這點(diǎn)和數(shù)據(jù)庫(kù)設(shè)計(jì)風(fēng)格很像。

那么可能有同學(xué)會(huì)問(wèn)了?動(dòng)詞怎么來(lái)表示呢?

常用的HTTP動(dòng)詞有五個(gè),對(duì)應(yīng)sql中命令。也就是說(shuō)我們定義接口url中一般不會(huì)出現(xiàn)動(dòng)詞,都是使用名詞,而動(dòng)詞使用HTTP請(qǐng)求方式來(lái)表示。

  • GET(SELECT):從服務(wù)器取出資源(一項(xiàng)或多項(xiàng))。
  • POST(CREATE):在服務(wù)器新建一個(gè)資源。
  • PUT(UPDATE):在服務(wù)器更新資源(客戶(hù)端提供改變后的完整資源)。
  • PATCH(UPDATE):在服務(wù)器更新資源(客戶(hù)端提供改變的屬性)。
  • DELETE(DELETE):從服務(wù)器刪除資源。
軟件開(kāi)發(fā)中常說(shuō)的RESTful風(fēng)格API究竟是什么?
軟件開(kāi)發(fā)中常說(shuō)的RESTful風(fēng)格API究竟是什么?

三. REST遇到的問(wèn)題

復(fù)數(shù)形式怎么表示?

版本怎么表示(演示中我們參考github的風(fēng)格)?

其實(shí)一般互聯(lián)網(wǎng)技術(shù)類(lèi)公司都有自己的風(fēng)格,這個(gè)參考就好

例子

  • GET /zoos:列出所有動(dòng)物園
  • POST /zoos:新建一個(gè)動(dòng)物園
  • GET /zoos/ID:獲取某個(gè)指定動(dòng)物園的信息
  • PUT /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的全部信息)
  • PATCH /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的部分信息)
  • DELETE /zoos/ID:刪除某個(gè)動(dòng)物園
  • GET /zoos/ID/animals:列出某個(gè)指定動(dòng)物園的所有動(dòng)物
  • DELETE /zoos/ID/animals/ID:刪除某個(gè)指定動(dòng)物園的指定動(dòng)物

總結(jié)

當(dāng)你看到這里,這邊文章已經(jīng)講完了,相信你已經(jīng),對(duì)什么是Restful風(fēng)格已經(jīng)有一個(gè)自己的概念。但是小編還是要強(qiáng)調(diào)一點(diǎn)的是。請(qǐng)務(wù)必記住: REST是一種跨平臺(tái)、跨語(yǔ)言的架構(gòu)風(fēng)格。而不是已經(jīng)技術(shù)。所以對(duì)于剛?cè)胄械拈_(kāi)發(fā)者,請(qǐng)千萬(wàn)不要害怕。其實(shí)就這么簡(jiǎn)單。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 譯者:知秋(極樂(lè)科技專(zhuān)欄作者)來(lái)源:https://zhuanlan.zhihu.com/p/24592119 當(dāng)...
    極樂(lè)君閱讀 1,321評(píng)論 0 14
  • RESTful架構(gòu) 互聯(lián)網(wǎng)軟件:即網(wǎng)站,一種新型的軟件,采用客戶(hù)端/服務(wù)器模式,建立在分布式體系上,通過(guò)互聯(lián)網(wǎng)通信...
    零一_fb4d閱讀 340評(píng)論 0 0
  • 文章導(dǎo)讀: 網(wǎng)絡(luò)應(yīng)用程序,分為前端和后端兩個(gè)部分。當(dāng)前的發(fā)展趨勢(shì),就是前端設(shè)備層出不窮(手機(jī)、平板、桌面電腦、其他...
    創(chuàng)造new_world閱讀 332評(píng)論 0 0
  • 一、API API -- Application Programming Interface,即應(yīng)用程序編程接口。...
    AlleniCode閱讀 499評(píng)論 0 0
  • 今天看書(shū),無(wú)意間看到了這幾個(gè)字,心有所想,感覺(jué)說(shuō)的很在理。我們生活中有很多的事兒,需要慢慢的一步一步來(lái),忙里忙慌的...
    心敘楊麟閱讀 399評(píng)論 2 7

友情鏈接更多精彩內(nèi)容