OK,让我们假设我们有两个实体:个人资料,包括id姓名和〜10个不相干的领域,邮政,包括text,title和它的author(配置文件)。此外,还有资源/feed返回包含来自不同配置文件的帖子的提要。
所以我有两个选择:
哪种方式更快(在前端使用它)和更方便(RESTy,如果你喜欢)。
明明只是发送id的Profile是更快,因为响应长度较小。
然而,重要的问题是你需要Profile每个对象的完整对象Post吗?例如,如果您想打印出每个作者的姓名,Post那么发送完整的对象更有意义。但是,如果您只想为每个Post(在前端)提供指向作者的链接,那么id应该就足够了。
对于Post向您查询s 的其他服务,只需发送 sid并让他们在需要时进行第二次调用。如果需要,他们可以随时缓存数据。
尝试构建您的服务,以便每个调用/端点返回理解响应所需的最少数据量。这可能意味着 aPost包含一个精益Profile对象,其中仅包含名称,但排除所有其他“不相关”字段。但是当你Profile直接查询 a 时,你会得到完整的对象。
您还可以有一个可选的查询参数,调用者可以在其中指定他们是只想要id还是完整Profile,这是Atlassian JIRA用来保留带宽和提高速度的策略。
另请查看hal+json规范,它可以为您提供有关如何设计更可用和更透明的 REST 服务的好主意。
最重要!您的端点应该只返回外部世界可以实际使用和理解的数据。所以这意味着如果Profile有一个/多个字段的值仅在您的后端使用(例如,用户的密码),那么您永远不应该泄露这些值。
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |