软件架构设计:我应该使用哪种设计?

时间:2017-02-25 13:10:14

标签: api architecture server client-server

我设计了一个客户端/服务器架构。在该系统中,客户端可以通过API调用调用某些服务 - 这些服务在服务器上实现。由于客户端必须发送一些特定的选项,我对这个架构设计的某些部分感到怀疑。这些选项如下:

search_engine

如您所知,我可以在此架构中使用2种模式,包括:

  1. 客户端可以在json中嵌入switch case选项并发布 服务器。在这种情况下,服务器必须解析输入json(可能是search_engine)和 根据其选择产生结果。
  2. 服务器为每种GET选项提供某种服务。因此,客户端只需通过{{1}}请求调用这些服务。
  3. 我不确定第一选择是好的设计还是第二选择。既然我已经听说过在客户端/服务器架构中,性能是一个重要的因素,你建议采用哪种设计?

    提前致谢。

1 个答案:

答案 0 :(得分:0)

根据URL的构建方式,您可以将search_engine作为查询字符串的参数传递,如

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

并在JSON有效负载中传递query。 这使您可以自由地处理search_engine参数,无论是通过原始开关还是更复杂的单独服务。

为了获得更好的图片,请尝试在构建系统后估算添加另一个search_engine所需的工作量。 此外,如果您测试您的软件,哪种方法更容易(但有效)为其编写测试。