日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于使用REST API

發布時間:2025/7/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于使用REST API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計REST API的請求處理部分

REST API功能

通常, 我們希望借助REST API完成以下操作?
- 創建一個新記錄?
- 讀取一個list的記錄?
- 讀取指定的記錄?
- 更新指定記錄?
- 刪除指定記錄

假如我們現在要創建的是地址記錄, 假定我們要使用的URL路徑是/locations, 那么各個操作對應到URL路徑之后如下表所示

動作URL路徑路徑參數例子
創建一個新記錄/locations?http://example/api/locations
讀取一個list的記錄/locations?http://example/api/locations
讀取指定的記錄/locationslocationIdhttp://example/api/locations/123
更新指定記錄/locationslocationIdhttp://example/api/locations/123
刪除指定記錄/locationslocationIdhttp://example/api/locations/123

通過上表可以看出, 多個不同的動作可能對應的是相同的URL路徑, 那么如何進行動作的區分呢? 答案是通過HTTP請求類型來判斷.

HTTP請求類型

通常, REST API使用到四種HTTP請求, 它們的用途和相應如下所示

HTTP請求類型用途響應
POST創建新記錄數據庫中插入新記錄
GET讀取記錄從數據庫返回指定記錄
PUT更新記錄更新數據庫中的指定記錄
DELETE刪除記錄數據庫中指定記錄被刪除

結合HTTP請求類型和URL路徑確定唯一的操作

動作HTTP請求類型URL路徑路徑參數例子
創建一個新記錄POST/locations?http://example/api/locations
讀取一個list的記錄GET/locations?http://example/api/locations
讀取指定的記錄GET/locationslocationIdhttp://example/api/locations/123
更新指定記錄PUT/locationslocationIdhttp://example/api/locations/123
刪除指定記錄DELETE/locationslocationIdhttp://example/api/locations/123

使用REST API操作子文檔

以上介紹都是REST API操作父文檔, 如果想操作子文檔, 首先需要獲取到父文檔, 也就是如上表中的http://example/api/locations/123這樣的路徑, 現在假定每個location文檔中還內嵌了名為reviews的子文檔, 那么它所對應的操作如下

動作HTTP請求類型URL路徑路徑參數例子
創建一個新記錄POST/locations/locationId/reviewslocationIdhttp://example/api/locations/123/reviews
讀取指定的記錄GET/locations/locationId/reviewslocationId
reviewId
http://example/api/locations/123/reviews/abc
更新指定記錄PUT/locations/locationId/reviewslocationId
reviewId
http://example/api/locations/123/reviews/abc
刪除指定記錄DELETE/locations/locationId/reviewslocationId
reviewId
http://example/api/locations/123/reviews/abc

注意, 子文檔的操作并沒有一個讀取list的操作, 因為這個操作可以通過對父文檔操作進行實現.

設計REST API響應(Response)和狀態碼

REST API的另一部分就是響應的設計, 響應一般來說包含兩個部分:?
- 返回數據?
- HTTP狀態碼

對于返回數據, 通常是JSON或者XML類型的, 這里我們選擇JSON類型, 因為它比XML數據更加緊湊, 并且天然適應MEAN技術棧. 對于每個請求, 返回數據都應該有三種類型:?
- 包含正確返回的被請求數據的JSON對象?
- 包含錯誤信息的JSON對象?
- null響應

常用的HTTP狀態碼

HTTP狀態碼通常是用來和響應一同返回的, 用于表明HTTP請求的執行情況.

常用的HTTP狀態碼共有10種

狀態碼名稱適用場景
200OKGET或者PUT請求成功
201CreatedPOST請求成功
204No contentDELETE請求成功
400Bad requestGET,?PUT或者POST請求由于內容不符合標準而失敗
401Unauthorized身份驗證未通過
403Forbidden不允許的請求
404Not found請求的URL沒有資源或者參數錯誤
405Method not allowed指定的URL不允許此種請求類型
409ConflictPOST失敗, 試圖插入重復數據
500Internal server error服務器或數據庫故障

在Express中建立響應API

使REST API不與應用的其他處理邏輯混雜, 所以這里我們單獨對其進行管理.

首先, 在應用的根目錄新建一個app_api目錄, 這個目錄將會包含routes,?controllers,?models(注意并沒有views)

創建REST API路由

首先創建根路由, 也就是index.js, 并將其加載到app.js中,

var index = require('./app_server/routes/index'); // 以下是新增的路由 var apiIndex = require('./app_api/routes/index'); app.use('/', index); // 以下是新增的路由 app.use('/api', apiIndex);

?

轉載于:https://www.cnblogs.com/duhuo/p/4351837.html

總結

以上是生活随笔為你收集整理的关于使用REST API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。