API设计最佳实践与协议选择
一、API设计准则
准则2:请求独立性与并行化机会
请求不应依赖其他请求的结果。不要让客户端通过链式多个请求来获取所需数据,而应提前预估并提供所需数据。同时,要寻找并行化的机会。即便遵循前两条准则,通常也难以在单个请求中获取服务所需的所有数据。服务可能负责检索多种不相关类型的信息,将它们一起返回并不合理。在这种情况下,为每种不同类型的信息分别发起多个服务请求是合理的。但这并不意味着要承受多次往返的开销。如果一个方法调用的输入不依赖于另一个方法的结果,就无需等待第一个请求返回数据后再发起第二个请求,而是可以同时发起所有不相关的服务调用,然后等待它们全部返回后再继续处理。
例如,向电影服务请求放映时间数据,同时向广告服务器请求第三方展示优惠信息,这两个请求可以并行进行。正常代码可能如下:
@showtime_data = MoviesClient.getShowtimeData(movie_id, zip)
@advertisements = AdsClient.getAdsByLocation(zip)
由于这两个请求不相关,我们可以同时发起它们,然后等待结果,代码如下:
t1 = Thread.new do
@showtime_data = MoviesClient.getShowtimeData(movie_id, zip)
end
t2 = Thread.new do
@advertisements = AdsClient.getAdsByLo
超级会员免费看
订阅专栏 解锁全文
1012

被折叠的 条评论
为什么被折叠?



