[英]Creating a REST API to allow upload of large data sets
我目前正在創建一套 REST API,用於將不確定數量的信息行上傳到我們的數據庫。 這些 API 將由第三方公司團隊的開發人員使用。
信息量將從每天批量上傳約 4k 行信息開始,預計在約 4 個月內增加多達 5k 行信息。 我的問題是,設計上傳 API 的最佳方式是什么?
在我寫下一些想法之前,我一直在閱讀這里有一些需要考慮的注意事項。
一行信息的整體結構是這樣的,乘以 4k。
"data": [ {"InfoID": 1, "InfoName": "HELLO", "InfoValue": 1.00, "InfoDate": "2019-01-01"}, {"InfoID": 2, "InfoName": "WORLD", "InfoValue": 2.00, "InfoDate": "2019-01-02"} ]
我在設計此類 API 時了解到的一些想法是:
任何意見、建議和想法都有助於做出設計決策。
我建議使用一個接受POST
請求的端點。 讓請求的正文是您選擇接受它的任何格式的整批數據 - JSON、XML、CSV 等。讓客戶端指定Content-Type
標頭以指示他們發送信息的格式。解析該格式以應用批量更改。 如果回復時間超過一秒左右,請立即發送202 Accepted
和帶有端點的Location
標頭,他們可以在其中獲得有關批處理進展情況的進度報告。
請注意,您必須決定如何處理包含一些錯誤條目的上傳 - 要么使整個批次失敗,要么接受您所能接受的。
分頁可能是矯枉過正。 根據您給出的示例,5k 個條目可能小於 1 兆字節? 權衡這一點與客戶不得不使用分頁的煩惱。 作為客戶,我不想這樣做。
由於性能成本,要求客戶端 POST 4k 次以獲取所有數據可能不是正確的想法。 客戶端也不太可能希望自己解析數據來編寫循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.