REST与Web API中的继承相结合

时间:2018-05-25 14:16:02

标签: c# rest inheritance

我们目前正在设计一些数据服务,这些数据服务应该向多个单方提供数据,因此通用性足以分享但不易于理解。 一般来说,它很简单,有些但我们还没有达到这一点,我们正在讨论核心数据的可能性,核心数据有一些继承层次结构以及其他数据。 例如:

  • 个人只是个人(没有塑造)
  • 个人是员工
  • 个人是活动参与者

此外,一个Indivivual还有其他数据

  • 地址
  • 电话号码

观看几个REST最佳实践文档,例如https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf,我看到最接近解决方案的是为每个继承的类型创建端点:

  • ServiceApi / DataService的/ V1 /个体
  • ServiceApi / DataService的/ V1 /员工

并且可能使用部分响应机制添加" Has" -data。这看起来很奇怪,因为现在消费者必须知道他要求的子类型。

另一种解决方案可能是添加大量端点并为每个请求的可能性创建DTO:

  • IndividualWithAddresses
  • IndividualWithPhoneNumbers
  • EmployeeWithPhoneNumbers

这些解决方案都没有,而且我们发现的其他解决方案都没有吸引人。我觉得像大型API提供商肯定有更丰富的数据模型,必须有类似的讨论。是否有解决方案来控制复杂性并保持足够的灵活性?

0 个答案:

没有答案