欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

RESTfulAPI良好的設(shè)計(jì)方法有哪些

RESTfulAPI良好的設(shè)計(jì)方法有哪些,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站制作、和布克賽爾蒙古網(wǎng)絡(luò)推廣、成都小程序開發(fā)、和布克賽爾蒙古網(wǎng)絡(luò)營(yíng)銷、和布克賽爾蒙古企業(yè)策劃、和布克賽爾蒙古品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供和布克賽爾蒙古建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:chinadenli.net

Web API已經(jīng)在最近幾年變成重要的話題,一個(gè)干凈的API設(shè)計(jì)對(duì)于后端系統(tǒng)是非常重要的。

通常我們?yōu)閃eb API使用RESTful設(shè)計(jì),REST概念分離了API結(jié)構(gòu)和邏輯資源,通過Http方法GET, DELETE, POST 和 PUT來操作資源。

1.使用名詞而不是動(dòng)詞

Resource
資源

GET
POST
創(chuàng)建
PUT
修改
DELETE
/cars返回 cars集合創(chuàng)建新的資源批量更新cars刪除所有cars
/cars/711返回特定的car該方法不允許(405)更新一個(gè)指定的資源擅長(zhǎng)指定資源

不要使用:

/getAllCars
/createNewCar
/deleteAllRedCars

2.Get方法和查詢參數(shù)不應(yīng)該涉及狀態(tài)改變

使用PUT, POST 和DELETE 方法 而不是 GET 方法來改變狀態(tài),不要使用GET 進(jìn)行狀態(tài)改變:

GET /users/711?activate
GET /users/711/activate

3.使用復(fù)數(shù)名詞

不要混淆名詞單數(shù)和復(fù)數(shù),為了保持簡(jiǎn)單,只對(duì)所有資源使用復(fù)數(shù)。

/cars 而不是 /car
/users 而不是 /user
/products 而不是 /product
/settings 而部署 /setting

4. 使用子資源表達(dá)關(guān)系

如果一個(gè)資源與另外一個(gè)資源有關(guān)系,使用子資源:

GET /cars/711/drivers/ 返回 car 711的所有司機(jī)
GET /cars/711/drivers/4 返回 car 711的4號(hào)司機(jī)

5.使用Http頭聲明序列化格式

在客戶端和服務(wù)端,雙方都要知道通訊的格式,格式在HTTP-Header中指定

Content-Type 定義請(qǐng)求格式
Accept 定義系列可接受的響應(yīng)格式

6.使用HATEOAS

Hypermedia athe Engine oApplication State 超媒體作為應(yīng)用狀態(tài)的引擎,超文本鏈接可以建立更好的文本瀏覽:

{

  "id": 711,

  "manufacturer": "bmw",

  "model": "X5",

  "seats": 5,

  "drivers": [

   {

    "id": "23",

    "name": "Stefan Jauker",

    "links": [

     {

     "rel": "self",

     "href": "/api/v1/drivers/23"

    }

   ]

  }

 ]

}

注意href指向下一個(gè)URL

7.為集合提供過濾 排序 選擇和分頁等功能

Filtering過濾:

使用唯一的查詢參數(shù)進(jìn)行過濾:

GET /cars?color=red 返回紅色的cars
GET /cars?seats<=2 返回小于兩座位的cars集合

Sorting排序:

允許針對(duì)多個(gè)字段排序

GET /cars?sort=-manufactorer,+model

這是返回根據(jù)生產(chǎn)者降序和模型升序排列的car集合

Field selection

移動(dòng)端能夠顯示其中一些字段,它們其實(shí)不需要一個(gè)資源的所有字段,給API消費(fèi)者一個(gè)選擇字段的能力,這會(huì)降低網(wǎng)絡(luò)流量,提高API可用性。

GET /cars?fields=manufacturer,model,id,color

Paging分頁

使用 limit 和offset.實(shí)現(xiàn)分頁,缺省limit=20 和offset=0;

GET /cars?offset=10&limit=5

為了將總數(shù)發(fā)給客戶端,使用訂制的HTTP頭: X-Total-Count.

鏈接到下一頁或上一頁可以在HTTP頭的link規(guī)定,遵循Link規(guī)定:

Link: <https://blog.mwaysolutions.com/sample/api/v1/cars?offset=15&limit=5>; rel="next",
<https://blog.mwaysolutions.com/sample/api/v1/cars?offset=50&limit=3>; rel="last",
<https://blog.mwaysolutions.com/sample/api/v1/cars?offset=0&limit=5>; rel="first",
<https://blog.mwaysolutions.com/sample/api/v1/cars?offset=5&limit=5>; rel="prev",

8.版本化你的API

使得API版本變得強(qiáng)制性,不要發(fā)布無版本的API,使用簡(jiǎn)單數(shù)字,避免小數(shù)點(diǎn)如2.5.

一般在Url后面使用?v

/blog/api/v1

9. 使用Http狀態(tài)碼處理錯(cuò)誤

如果你的API沒有錯(cuò)誤處理是很難的,只是返回500和出錯(cuò)堆棧不一定有用

Http狀態(tài)碼提供70個(gè)出錯(cuò),我們只要使用10個(gè)左右:

200 – OK – 一切正常
201 – OK – 新的資源已經(jīng)成功創(chuàng)建
204 – OK – 資源已經(jīng)成功擅長(zhǎng)

304 – Not Modified – 客戶端使用緩存數(shù)據(jù)

400 – Bad Request – 請(qǐng)求無效,需要附加細(xì)節(jié)解釋如 "JSON無效"
401 – Unauthorized – 請(qǐng)求需要用戶驗(yàn)證
403 – Forbidden – 服務(wù)器已經(jīng)理解了請(qǐng)求,但是拒絕服務(wù)或這種請(qǐng)求的訪問是不允許的。
404 – Not found – 沒有發(fā)現(xiàn)該資源
422 – Unprocessable Entity – 只有服務(wù)器不能處理實(shí)體時(shí)使用,比如圖像不能被格式化,或者重要字段丟失。

500 – Internal Server Error – API開發(fā)者應(yīng)該避免這種錯(cuò)誤。

使用詳細(xì)的錯(cuò)誤包裝錯(cuò)誤:

{

  "errors": [

   {

    "userMessage": "Sorry, the requested resource does not exist",

    "internalMessage": "No car found in the database",

    "code": 34,

    "more info": "http://dev.mwaysolutions.com/blog/api/v1/errors/12345"

   }

  ]

}

10.允許覆蓋http方法

一些代理只支持POST 和 GET方法, 為了使用這些有限方法支持RESTful API,需要一種辦法覆蓋http原來的方法。

使用訂制的HTTP頭 X-HTTP-Method-Override 來覆蓋POST 方法.

看完上述內(nèi)容,你們掌握RESTfulAPI良好的設(shè)計(jì)方法有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前題目:RESTfulAPI良好的設(shè)計(jì)方法有哪些
瀏覽地址:http://chinadenli.net/article14/jijdde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管ChatGPT用戶體驗(yàn)營(yíng)銷型網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)