• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    網站百科

    為您解碼網站建設的點點滴滴

    RESTful API URL 設計

    發表日期:2019-09 文章編輯:小燈 瀏覽次數:4134

    RESTful?是目前最流行的 API 設計規范,也是各公司招聘面試的項目之一。很多人對 RESTful API 的設計還不是很規范,于是便有了本文。

    URL 的設計,一般我們會采用:動詞 + 賓語的形式表示。

    RESTful 的核心思想就是,客戶端發出的數據操作指令都是"動詞 + 賓語"的結構。比如,GET /articles這個命令,GET是動詞,/articles是賓語。

    動詞通常就是五種 HTTP 方法,對應 CRUD 操作。

    • GET:讀取(Read)
    • POST:新建(Create)
    • PUT:更新(Update)
    • PATCH:更新(Update),通常是部分更新
    • DELETE:刪除(Delete)

    根據 HTTP 規范,動詞一律大寫。

    有些客戶端只能使用GET和POST這兩種方法。服務器必須接受POST模擬其他三個方法(PUT、PATCH、DELETE)。

    這時,客戶端發出的 HTTP 請求,要加上X-HTTP-Method-Override屬性,告訴服務器應該使用哪一個動詞,覆蓋POST方法。

    POST /api/Person/4 HTTP/1.1X-HTTP-Method-Override: PUT

    上面代碼中,X-HTTP-Method-Override指定本次請求的方法是PUT,而不是POST。

    在 SpringMVC 中會添加一個?HiddenHttpMethodFilter 過濾器。它會將表單上隱藏域_method屬性改為put或者delete等再進行提交。因為只有form表單才具有post方法,而這個過濾器也只能將post方法轉化,get則不行。不懂的可以看這篇文章:https://blog.csdn.net/jaryle/article/details/73656426。

    賓語就是 API 的 URL,是 HTTP 動詞作用的對象。它應該是名詞,不能是動詞。比如,/articles這個 URL 就是正確的,而下面的 URL 不是名詞,所以都是錯誤的。

    • /getAllCars
    • /createNewCar
    • /deleteAllRedCars

    既然 URL 是名詞,那么應該使用復數,還是單數?

    這沒有統一的規定,但是常見的操作是讀取一個集合,比如GET /articles(讀取所有文章),這里明顯應該是復數。

    為了統一起見,建議都使用復數 URL,比如GET /articles/2要好于GET /article/2。

    常見的情況是,資源需要多級分類,因此很容易寫出多級的 URL,比如獲取某個作者的某一類文章。

    GET /authors/12/categories/2

    這種 URL 不利于擴展,語義也不明確,往往要想一會,才能明白含義。

    更好的做法是,除了第一級,其他級別都用查詢字符串表達。

    GET /authors/12?categories=2

    下面是另一個例子,查詢已發布的文章。你可能會設計成下面的 URL。

    GET /articles/published

    查詢字符串的寫法明顯更好。

    GET /articles?published=true

    RESTful API 最好的例子就是 github 網站。大家經常使用,一定不陌生。所以可以借鑒 github 上的資源命名方式來開發自己的產品,設計自己的?RESTful API 和 URL。


    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/21361.html
    相關前端設計
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    久久精品国产亚洲AV嫖农村妇女| 亚洲AV无码成人精品区大在线| 国产精品女同久久久久电影院| 国产99久久亚洲综合精品| 91精品国产麻豆福利在线| 精品人妻码一区二区三区| 国产小呦泬泬99精品| 精品400部自拍视频在线播放| 国产亚洲一区二区精品| 精品视频在线观看一区二区三区| 国产精品久久久久影视不卡| 奇米精品视频一区二区三区| 精品久久久中文字幕| 国产精品高清一区二区人妖| 亚洲天堂久久精品| 亚洲精品国偷自产在线| 无码人妻精品丰满熟妇区| 91精品国产自产在线观看永久∴| 国产精品无码无片在线观看| 精品国产日韩亚洲一区| 一区二区精品视频| 国产乱码精品一区二区三区四川| 国产精品嫩草久久久久| 97久久精品无码一区二区| 亚洲精品第五页中文字幕| 日韩一区精品视频一区二区| 国产精品丝袜一区二区三区| 亚洲精品无码久久久久去q| 国产综合色产在线精品| 精品午夜国产人人福利| 国产精品偷伦视频免费观看了| 大伊香蕉精品视频在线导航| 国产精品无码一区二区三区在| 久久Av无码精品人妻系列| 无码日韩精品一区二区免费暖暖| 国产精品国色综合久久| 国产三级久久久精品麻豆三级| 亚洲精品成人无限看| 亚洲精品无码AV人在线播放| 麻豆精品成人免费国产片| 亚洲国产精品va在线播放|