服务 API 设计最佳实践与协议选择
1. 服务通信技术选择
在某些情况下,Rails 可能并非实现新客户端的最佳选择。为了设计服务通信机制,使用已有广泛支持且能轻松集成到多种其他技术(如 Java、.NET、C++ 等)的技术至关重要。XML - RPC 客户端库几乎在每个平台上都可用,越来越多的平台也开始以某种方式支持 REST,许多平台还具备不同程度的 SOAP 功能。
服务应采用行业标准的通信方式,这样用任何语言或框架编写的客户端都能参与其中。
2. API 设计最佳实践
从单体应用设计转向面向服务的设计会有一些权衡。由于整体架构不再是单个应用直接连接数据库,服务之间的网络消息传递会产生开销。若 API 设计能将此开销降至最低,那么它对性能的影响就几乎可以忽略不计。以下是四条有助于将开销控制在可接受范围内的准则:
- 准则 1:一次性获取所需全部数据
- 在面向对象编程中,使用大量小方法,每个方法执行小功能并返回少量数据是最佳实践。但在面向服务的架构中,方法调用在服务端远程处理,每次调用都会产生网络开销。因此,一次性获取所需的所有数据会更高效。
- 例如,要渲染特定位置电影及其放映时间的页面。若整个应用在单台机器上运行,以下调用看似合理:
@movie = Movie.find(params[:id])
@rating = Rating.find(@movie.rating_id)
@showtimes = MovieShowtime.find_all_by_movie_id_and_location(@
超级会员免费看
订阅专栏 解锁全文

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



