23、服务 API 设计最佳实践与协议选择

服务 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(@
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值