设计细节:接口输入参数要通用化

最近在定义一个接口时,需要根据不同的渠道类型返回不同的城市范围,大致的需求是如果是手机客户端则返回中国全部城市以及全球各个国家的TOP10城市,如果是web页面的话,则只返回中国热门城市以及全球各大洲的热门城市。如下:

是否返回 手机客户端 web页面
中国热门城市 Y Y
中国全部城市 Y N
各大洲热门城市 Y Y
各国家TOP10城市 Y N

需要在接口请求参数上进行区分,有两种方式分别如下:

  • 方式一:增加一个渠道类型参数(标识是”手机客户端“还是”web页面“)
  • 方式二:增加两个参数(“是否返回中国全部城市”和“是否返回各国家TOP10城市”)

从调用者角度,会觉得方式一比较方便明确;但从长远演进考虑,还是方式二会更佳,在这种方式下,前台和后台服务各自专注于自己的能力,不需要相互耦合逻辑,同时你会发现今后渠道类型越来越多的情况下(H5/Pad/API等),各渠道的差异五花八门,通过方式二后台接口将会更加通用。

你可能感兴趣的:(设计细节:接口输入参数要通用化)