深入理解Web API中的多态资源
1. 多态资源的数据存储
在多态资源的数据存储方面,不同类型的资源需要存储不同的字段。例如,正方形需要存储边长,而三角形需要存储底和高。为了真正表示这些不同形状的细节,我们需要在资源上存储不同的字段。为了解决这个问题,我们需要进行服务器端验证,使通用接口包含所有必要的字段,从而能够存储对应于各种子类型的字段。
比如,Shape资源可能需要有存储半径(用于圆形)、底和高(用于三角形)以及边长(用于正方形)的方式,并根据类型规范验证这些值。
然而,细节往往会使情况变得复杂。例如,如果API请求中包含了不适用于该资源类型的字段(如为正方形类型的Shape资源定义半径),应该将其视为错误还是忽略呢?
2. 何时使用多态资源
在设计API时,我们常常会发现两个提议的资源之间存在共性,这让我们重新思考它们是否应该作为两个独立的资源。例如,在聊天API中,可能会有TextMessage资源以及PhotoMessage、VideoMessage或AudioMessage资源。它们都代表通过聊天API发送的消息,但内容有所不同。
在本地编程时,我们可能会考虑使用Message接口和几个实现该接口的类,目标是编写只处理通用Message接口类型值的代码,而不是特定的实现。但这种逻辑是否适用于Web API呢?也就是说,我们是否应该使用通用性的论据来决定是否使用单个Message资源,而不是为每种消息类型创建多个独立的资源?
虽然直觉上可能是正确的,但逻辑并不完全适用。在本地编程语言中,我们关注的是通用性以及编写支持未来扩展和代码重用的函数。而在Web API中,我们更应该关注各种标
超级会员免费看
订阅专栏 解锁全文
1060

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



