2017-02-25 87 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。另外,如果你测试你的软件,哪种方法会更容易(但有效)编写测试。