服务与 API 设计及实现全解析
服务与 API 设计要点
在服务和 API 的设计中,有几个关键方面需要我们深入考虑。
1. URI 构建与数据连接
在服务中构建连接数据的 URI 时,服务自身并不存储实际的 URI,这与传统的 REST 有所不同。不过,这种方式便于对 URI 中包含版本号的资源进行更新。例如,当用户服务更新版本时,评论服务需要更新其 URI 生成逻辑。而且,用户系统的更新应允许评论服务逐步升级,而非要求两者同步更新。
此外,在响应中传递原始 ID 也有其合理性。对于某些服务,让客户端包含包装数据的业务逻辑,而非仅仅将原始数据传递给服务,是有意义的。以基本的数据验证为例,创建用户时,需要确保电子邮件地址格式正确、用户名和密码不为空。纯 RESTful 方法会将这些验证仅放在服务端进行,但如果服务客户端包含一些业务逻辑,就可以在发送数据到服务之前执行这些验证。所以,如果客户端已经包含业务逻辑,那么让客户端负责 URI 构建也并非难事。
2. 数据连接的最高层级
在服务调用栈中,数据连接的最高层级是决定连接操作发生位置的关键。以社交订阅源阅读器为例,一个返回用户最近五条阅读条目的服务,可能需要调用用户服务获取基本用户数据、订阅服务获取特定用户的阅读条目列表、订阅源条目服务获取实际条目以及评级服务获取条目列表的评级。数据连接可能发生在多个位置。
订阅和评级服务都存储了对订阅源条目和用户的引用。一种方法是在每个服务内部进行连接,但这会导致对多个服务的冗余调用。为避免这种情况,数据连接应在应用服务器层面进行,而非在服务内部。这样做有两个额外的好处:一是便于数据缓存,服务只需缓存自己数
超级会员免费看
订阅专栏 解锁全文

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



