Rest API命名感悟

Rest API,一種Web Service接口的風(fēng)格,定義了規(guī)范和約束。主要偏向資源,而資源所指的就是我們頁(yè)面中的
可控?cái)?shù)據(jù)。而傳統(tǒng)的SOAP所主要偏向的則是過(guò)程。而它們則成為了資源運(yùn)輸?shù)墓艿?,通過(guò)我們所編寫的URI。而
應(yīng)著兩者偏向角度問(wèn)題的不同,針對(duì)所它們?cè)O(shè)計(jì)的URI也會(huì)有所不同。
<URI并非絕對(duì)某種形式就是某種風(fēng)格,只能說(shuō)它的形式相對(duì)某種情形下定義了它是某種風(fēng)格的產(chǎn)物>
關(guān)于URI和URL的概念,就是一個(gè)相對(duì)和絕對(duì)的資源標(biāo)識(shí)。如果要深入了解,大家可以自己在到網(wǎng)上深入了解一下。
(如下是兩者編寫時(shí)所產(chǎn)生的URL)
---------------------SOAP----------------------
http://www.test.com/users/1/del
or
http://www.test.com/users?del=1
---------------------REST----------------------
[DELETE] http://www.test.com/users/1
因?yàn)镾OAP偏向的是過(guò)程,因而我們所設(shè)計(jì)的URI,在當(dāng)中我們可能需要提供或者說(shuō)告知我們這個(gè)是什么功能。
而REST偏向的是資源,所以增、刪、改、查,都與該資源無(wú)關(guān)。所以在上面我們沒(méi)有看到對(duì)應(yīng)的表示刪除的del單詞。
在了解這些內(nèi)容以后,大致我們能夠了解到的一個(gè)REST API命名的規(guī)范:只使用名詞。
而我們說(shuō)Rest作為一種規(guī)范和約束,它著重告訴我們的是我們?cè)诿臅r(shí)候應(yīng)該要考慮的某些方面,它規(guī)范了
我們的思維,也拓寬了我們的思想。而非單單的使用名詞去命名這么簡(jiǎn)單的就過(guò)去了的。
而如何去體現(xiàn)這個(gè)概念呢,下面是我在《伯樂(lè)在線》看到的博文的地址,我覺(jué)得挺實(shí)在的,大家可以看一下。
http://blog.jobbole.com/70511/
在此對(duì)《伯樂(lè)在線》以及本博文的作者JustinWu表示感謝。
當(dāng)中我們可以看到,作者以實(shí)際的業(yè)務(wù)出發(fā),引導(dǎo)我們?nèi)チ私庠谠O(shè)計(jì)API接口名稱時(shí)候的思維。
而有了作者的參考,我們其實(shí)可以針對(duì)我們自身的需求去設(shè)計(jì)數(shù)據(jù)自身的規(guī)范和準(zhǔn)則。
以下是我在了解完相關(guān)內(nèi)容后設(shè)計(jì)命名的一些想法。
注意:刪除操作應(yīng)該杜絕通過(guò)規(guī)律性的編碼去刪除對(duì)應(yīng)的數(shù)據(jù),預(yù)防攻擊。可以使用組合唯一的方式。
當(dāng)然,刪除操作是否需要也是需要斟酌的,因?yàn)橛脩魯?shù)據(jù)是非常重要的。
[Method] [URI] [Remark]
[POST] /api/users 向user表中添加一條用戶數(shù)據(jù)
[GET] /api/users 獲取user表中所有的用戶數(shù)據(jù)
[PUT] /api/users/1 修改user表中記錄為1的用戶數(shù)據(jù)
[GET] /api/users/1 獲取user表中編號(hào)為1的用戶數(shù)據(jù)
[GET] /api/users/1994/11/28 獲取出生日期為1994/11/18的用戶數(shù)據(jù)
[GET] /api/users/1/head_images 獲取編號(hào)為1的用戶的頭像信息
[GET] /api/users/1/shops/1 獲取編號(hào)為1的用戶門店為1的門店信息
[DELETE] /api/users/139******34 刪除user表中手機(jī)號(hào)碼為139******34的用戶數(shù)據(jù)
以上為個(gè)人理解的部分內(nèi)容,以此與各位共勉,如果您有什么想法,請(qǐng)留言,我們一起進(jìn)步,一起成長(zhǎng)。
索易軟件,感謝有您。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 一說(shuō)到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺(tái)通信方式。”但是在要求詳細(xì)講述它所提出的各個(gè)約束,以及如...
    時(shí)待吾閱讀 3,608評(píng)論 0 19
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 1. 淡淡的男士香氛味道混著強(qiáng)烈的雄性荷爾蒙氣息傳入鼻翼時(shí),徐嘉敏抽動(dòng)著鼻子狠狠吸了一口氣,仿佛要把這氣息印入腦海...
    顧一宸閱讀 8,967評(píng)論 213 158
  • 還清楚地記得昨天帶老爹去看眼睛的一幕幕。從最開(kāi)始沒(méi)回來(lái)時(shí)的定計(jì)劃,到前天的電話約時(shí)間,給老爹查路線,去公交站等候,...
    說(shuō)書人吶閱讀 384評(píng)論 0 0

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