[英]API design for file CSV import, best practice approach?
我需要設計一個 REST API 來導入一個包含 30 列的員工 CSV 文件。 文件中的記錄數可能因業務規模而異,可能是 10,可能是 5000。
這是我的設計方法
在前兩個選項的情況下,用戶應該在發送之前讀取 CSV 並轉換為 JSON。
問題
因為我對javascript不熟悉,所以我的回答將集中在問題1,關於如何設計一個用於導入大量數據的api。 一般有兩種方式,同步和異步。
為了避免長時間等待將數據導入數據庫,我們應該限制每個請求的數據行數。 如果用戶導入的數據超過限制,前端需要將數據拆分成多個請求。 為了更好的用戶體驗,我們可以顯示當前的導入進度。
與同步方式相比,異步的實現要復雜一些。
1.我們可以將csv或json文件上傳到Amazon S3,然后通過api將文件地址發送到服務器。
2.異步worker在s3down文件后開始將數據導入數據庫。 為了避免數據庫阻塞,我們還得批量導入。 3.為了獲取導入進度,在導入完成后,前端通過api輪詢或服務器通知前端。
兩種方式各有利弊,您選擇哪種方式取決於數據量和實現復雜性之間的權衡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.