2016-09-25 99 views
0

OK的ID,让我们假设我们有两个实体:档案,包括id,名称和〜10个不相干的领域,并邮政,包括texttitle,它的author(简介)。此外,还有资源/馈送返回包含来自不同配置文件的帖子的馈送。我应该返回相关的实体或整个实体

所以,我有两个选择:

  1. 发送全档案实体笔者
  2. 发送作者的ID(有一种方法可以要求单独型材

哪种方式更快(在前端使用它)和更方便(如果你喜欢,RESTy)。

回答

1

很显然,发送idProfile的速度更快,因为响应时间较短。

但是,重要的问题是您是否需要完整的Profile对象与每个Post?例如,如果您想打印出每个作者的姓名Post,则发送完整对象更有意义。但是,如果您只想为作者提供每个Post(位于前端)的链接,那么id就足够了。

对于查询您的Post s的其他服务,只需发送id并让他们在需要时再拨打一个电话。如果需要的话,他们总是可以缓存数据。

尝试构建您的服务,以便每个呼叫/终端返回最低限度需要的数据量以便了解响应。这可能意味着一个Post包含一个精简对象,其中只包含名称,但排除所有其他“无关”字段。但是当你直接查询Profile时,你会得到完整的对象。

您还可以有一个可选的查询参数,其中调用者可以指定他们是否只想要id或完整Profile,这是一种策略Atlassian JIRA用于保留带宽并提高速度。

还可以查看hal+json规范,它可以为您提供有关如何设计更实用,更透明的REST服务的好主意。

最重要!您的端点应该只返回外部世界实际可以使用和理解的数据。所以这意味着如果Profile有一个字段/字段的值只用于您的后端(例如,用户的密码),那么您绝对不应该将这些字段泄漏出去。