每个实体是否应该有一个REST API端点? 例如,我们有员工,他有办公室地址,个人地址和其他地址。当消费者请求员工详细信息时,我们是否应该返回“地址的名字,姓氏和地址”以及消费者为地址对象启动另一个查询。我们如何选择哪种方法以及哪些准则有助于做出这样的决定。每个实体的REST API设计
回答
每个实体应该有一个REST API端点吗?
世界上没有普遍规则。编程只是一门科学。这是另一半的艺术。你决定选择什么。如果不知道你的背景,我们无法给你提供建议。
例如,我们有员工,他有办公室地址,个人 地址,一些其他地址。当消费者请求员工 的详细信息时,我们是否应该返回“名字,姓氏和地址的ID” 和消费者触发另一个地址对象查询。我们如何选择 哪种方法以及哪些准则有助于制定此类决定。
试着看看它是如何在Facebook Graph API实施的。简而言之:只需使用表示字段/依赖对象列表的查询参数,该参数需要包含在结果中。
每个实体应该有一个REST API端点吗?
“RESTful接口通常会拥有比核心域模型中的域对象多得多的许多资源。” - Jim Webber(2011)
当消费者请求员工详细信息时,我们是否应该返回“firstName,lastName和地址ID”,并且消费者激发地址对象的另一个查询。我们如何选择哪种方法以及哪些准则有助于做出这样的决定。
记住Web应该如何工作是有用的。守备描述了许多的网页体系结构被设计在chapter 4 of his thesis解决上述问题:
超媒体是由嵌入或如上述的层中,信息的呈现应用控制信息的存在来定义。分布式超媒体允许演示和控制信息存储在远程位置。就其性质而言,分布式超媒体系统内的用户操作需要将大量数据从数据存储位置传输到使用位置。因此,Web架构必须设计用于大数据传输。
换句话说,缓存是显著的关注,如果你要在网络规模上进行操作。
如果员工的详细信息是稳定的,那么将他们全部扔进一个长期存档的文档是很好的 - 该文档可以长时间服务于很多请求。另一方面,从文档的缓存副本工作的任何客户端都没有看到最新的更改 - 易失性数据通常希望具有与稳定数据不同的缓存规则。
精细粮食资源往往更容易编辑 - 在HTTP中,PUT取代了资源的状态。较小的资源意味着客户需要跟踪的数据较少,与其他编辑冲突的几率较小。
- 1. REST API设计
- 2. Symfony的 - 学说:设计REST API接收多对多实体
- 3. 如何为非资源实体设计REST API
- 4. REST风格的API设计
- 5. Rails的REST API设计
- 6. REST API URL /端点设计
- 7. REST API设计查询
- 8. REST API设计(Twitter)上
- 9. REST API设计查询
- 10. REST API,多语言设计
- 11. REST API,具有关系的POST实体?
- 12. Artifactory的:REST API糟糕的设计
- 13. Rest api - 为实体添加标签
- 14. iPhone:每个实体的NSFetchedResultsController?
- 15. Symfony表单设计,实体设计
- 16. 什么是REST API和用户角色设计最佳实践?
- 17. 要使用REST API实现哪种设计模式?
- 18. Rest API设计:更新关系
- 19. Java REST多节点API设计
- 20. REST API设计检索摘要信息
- 21. rest api路径设计问题
- 22. REST API设计:链接资源
- 23. 标准REST API设计规范
- 24. 如何使用Twisted设计REST API?
- 25. REST API设计+标准MVC webapp
- 26. 设计代码第一个实体框架实体框架
- 27. 如何设计一个简单的CRUD REST API
- 28. Objectify实体模型设计
- 29. 实体框架设计师
- 30. 更新实体设计器
你的要求是什么。什么是预期的输出。首先确定这些。然后继续执行预期的性能(SLA,可用性)。然后做出决定。 – k1133