8、服务与 API 设计及实现全解析

服务与 API 设计及实现全解析

服务与 API 设计要点

在服务和 API 的设计中,有几个关键方面需要我们深入考虑。

1. URI 构建与数据连接

在服务中构建连接数据的 URI 时,服务自身并不存储实际的 URI,这与传统的 REST 有所不同。不过,这种方式便于对 URI 中包含版本号的资源进行更新。例如,当用户服务更新版本时,评论服务需要更新其 URI 生成逻辑。而且,用户系统的更新应允许评论服务逐步升级,而非要求两者同步更新。

此外,在响应中传递原始 ID 也有其合理性。对于某些服务,让客户端包含包装数据的业务逻辑,而非仅仅将原始数据传递给服务,是有意义的。以基本的数据验证为例,创建用户时,需要确保电子邮件地址格式正确、用户名和密码不为空。纯 RESTful 方法会将这些验证仅放在服务端进行,但如果服务客户端包含一些业务逻辑,就可以在发送数据到服务之前执行这些验证。所以,如果客户端已经包含业务逻辑,那么让客户端负责 URI 构建也并非难事。

2. 数据连接的最高层级

在服务调用栈中,数据连接的最高层级是决定连接操作发生位置的关键。以社交订阅源阅读器为例,一个返回用户最近五条阅读条目的服务,可能需要调用用户服务获取基本用户数据、订阅服务获取特定用户的阅读条目列表、订阅源条目服务获取实际条目以及评级服务获取条目列表的评级。数据连接可能发生在多个位置。

订阅和评级服务都存储了对订阅源条目和用户的引用。一种方法是在每个服务内部进行连接,但这会导致对多个服务的冗余调用。为避免这种情况,数据连接应在应用服务器层面进行,而非在服务内部。这样做有两个额外的好处:一是便于数据缓存,服务只需缓存自己数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值