在REST API中支援批次操作的幾個不同方法 - mscharhag
批次(或批處理)操作用於在單個請求中對多個資源執行操作。這可以幫助減少網路開銷。為了提高網路效能,通常最好發出更少的請求,而不是發出更少的資料的更多請求。
但是,在新增對批次操作的支援之前,如果確實需要此功能,則應三思而後行。通常,網路效能並不是限制請求吞吐量的因素。您還應該考慮使用HTTP流水線之類的技術來提高效能。
在執行批次操作時,我們應該區分兩種不同的情況:
- 批次操作將一個請求中的許多任意操作組合在一起。例如:刪除ID為42的產品,建立一個名為John的使用者,並檢索昨天建立的所有產品評論。
- 對相同型別的不同資源執行一項操作的批次操作。例如:刪除ID為23、45、67和89的產品。
請注意,所示的解決方案可能看起來不太像REST。通常,批次操作與REST約束並不十分相容,因為我們只需要一個請求就可以在不同的資源上進行操作。因此,根本沒有真正的REST解決方案。
本文研究了構建批次API的幾個不同方法。所有方法都有不同的優點和缺點。沒有唯一正確的方法,因為它始終取決於您的要求。
如果需要在單個請求中提交多個操作的通用方法,則可以使用自定義JSON格式。或者,您可以使用多部分內容型別將多個請求合併為一個請求。
您還可以拿出單獨的資源來表達所需的操作。如果您只有一個或幾個需要支援批次操作的操作,這通常是最簡單,最實用的方法。
在所有情況下,您都應該評估批次操作是否真正產生了預期的效能提升。否則,批次操作的額外複雜性通常是不值得的。
詳細點選標題見原文。
相關文章
- 在 .NET Core 中構建 REST APIRESTAPI
- REST:使用PATCH進行部分更新 - mscharhagREST
- REST API設計:如何處理Http併發一致性事務更新? - mscharhagRESTAPIHTTP
- 在 ASP .NET Core 中實現冪等 REST APIRESTAPI
- Python中字典dict的11種不同操作方法Python
- 幾個MySQL在Python中操作示例,MySQL利用於Python的實戰!MySqlPython
- 讓JavaScript中setTimeout支援鏈式操作的方法JavaScript
- 在NodeJS中操作檔案常見的APINodeJSAPI
- rest apiRESTAPI
- mysql 批次更新與批次更新多條記錄的不同值實現方法MySql
- 13 個設計 REST API 的最佳實踐RESTAPI
- xml操作的幾種方法XML
- 批次殺死MySQL連線的幾種方法MySql
- [API 開發管理] 分享幾個 eoLinker 實用操作技巧API
- GraphQL API vs REST APIAPIREST
- Tomcat 配置支援不同的域名訪問各自不同程式的配置方法Tomcat
- 批次繫結幾千個域名
- Python中dict支援多個key的方法Python
- 在Windows 11中解除安裝更新的不同方法Windows
- 在Java中建立物件的不同方法是什麼?Java物件
- vue中extend,mixins,extends,components,install的幾個操作Vue
- Vue還有這種騷操作?淺析幾個新手常常忽略的APIVueAPI
- Spark REST API & metricsSparkRESTAPI
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- range方法在Python2和Python3中的不同Python
- 使用ABAP操作Excel的幾種方法Excel
- git的幾個常用基本操作Git
- GraphQL Vs. REST? API 開發方法的誠實比較 | transpositRESTAPI
- 一文搞懂,這幾種 API 的不同應用場景API
- Billboards 技術在Unity 中的幾種使用方法Unity
- Stream 的幾種中間操作
- 介紹幾個Python 中寫註釋的方法Python
- PHP中把stdClass Object轉array的幾個方法PHPObject
- SEO專案操作在不同階段的工作分配
- 幾個Linux系統的操作技巧Linux
- 使用解構的幾個騷操作
- PostgreSQL如何確定某個opclass支援哪些操作符(支援索引),JOIN方法,排序SQL索引排序
- css幾個居中的方法CSS