2017-02-25 121 views
0

我設計了一個客戶機/服務器體系結構。在這個系統中,客戶可以通過API調用來調用一些服務,這些服務在服務器上實現。由於客戶端必須發送一些特定的選項,因此我對此架構設計的某些部分有疑問。這些選項如下:軟件架構設計:我應該使用哪種設計?

{ 
"query" : "sample", 
"search_engine" : "google" //can be anything else such as bing or etc. 
} 

如你所知,我可以在這個架構中,包括使用2種模式:

  1. 客戶端可以在JSON中嵌入search_engine選項,並張貼 壽服務器。在這種情況下,服務器必須解析輸入json(可能由switch case)和 根據其選項生成結果。
  2. 服務器爲每種類型的search_engine選項提供某種服務。所以客戶只需要通過GET請求來調用這些服務。

我不知道的第一選擇是否將是一個良好的設計或第二。由於我已經聽說在客戶端/服務器體系結構中,性能是一個重要因素,您建議使用哪種設計?

在此先感謝。

回答

0

根據網址的構建方式,你可以有search_engine作爲查詢字符串的參數傳遞一樣

/api/controller/google 
/api/controller/bing 

,並有query在JSON有效載荷通過。 這使您可以自由處理參數search_engine,無論是通過原始開關還是更復雜的單獨服務。

爲了獲得更好的圖像,請嘗試估計努力在系統構建後添加另一個search_engine。另外,如果你測試你的軟件,哪種方法會更容易(但有效)編寫測試。