簡體   English   中英

REST Web API應用程序數據管理

[英]REST Web api application data managment

我對應該如何在開發的RESTful Web應用程序中管理數據感到非常困惑。 客戶端應保存多少數據?

有關更具體的示例:

我的應用程序將信件從一個系統發送到另一個系統。 我使用Sql server將字母保存在服務器端。 對於每個字母,都有一個目的地和由Address對象表示的來源,其中包含有關Addresses的完整信息。 我不能決定如何管理應用程序中地址的數據,我應該:

  1. 在啟動時將所有地址加載到我的客戶端,並且隨着每個字母的發送將整個地址列表粘貼到要求中? 該請求將包含更多數據並且更大,但是我不需要將所有工作站都放在服務器上

  2. 僅將地址的ID加載到客戶端,並使用ID發送請求,然后從服務器端的數據庫加載它們? 請求將包含較少的數據量,但我需要獲取服務器上的所有地址

  3. 我應該只在客戶端上保存代表其自己的地址以及其他工作站ID的Address對象嗎? 與2相同,但我不需要提取發件人的地址

每種方法的優點/缺點是什么? 萬一站數約為100(每個對象中沒有太多數據)時,您會選擇什么?

我不是專業人士,所以如果我說的話有誤/措詞不對,請糾正我

提前致謝。

沒有適用於所有情況的靈丹妙葯,但我建議您采用以下方式:

  1. 將所有地址加載到客戶端。 最終用戶很可能希望查看詳細的地址信息,而不是無意義的ID
  2. 用戶選擇目標后,您的應用僅將ID發送到服務器
  3. 服務器必須通過db中的id獲取地址詳細信息
  4. 發信

客戶端不應發送完整的地址對象,因為它可能是(偶然或有意)錯誤的。您最好始終從數據庫獲取真實有效的數據。 如果需要減少數據庫負載,則最好使用服務器端緩存。 例:

  1. 創建從數據庫獲取地址的存儲庫
  2. 創建僅需一次從數據庫獲取數據的存儲庫包裝,然后將其保存在MemoryCahce strucutre中
  3. 在應用程序中使用緩存的包裝器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM