前端与后端的数据填充和操作

时间:2017-01-12 20:45:35

标签: api frontend backend tradeoff

我有一般性的问题。例如,我有员工表,其中包括姓名,地址,年龄,性别,部门等。当用户想要查看整体员工信息时,我不需要从DB中提取整列。我想首先通过对每个部门的员工姓名进行分组来显示整体员工信息。然后,用户可以选择一个特定员工,如果他/她有更多兴趣。 要实现这一点,哪种方法会更好。

1)应用两个不同的API,通过应用不同的查询将产生两个不同的数据结果。因此,如果我采用这种方法,即使我必须调用两个不同的API,它似乎也很有效。

2)应用一个API,即使整个员工信息不需要整个详细的员工信息,也会产生一个数据结果,包括整个员工相关列。获得这些数据后,我可以根据不同的需求,通过操作已经从前端提取的数据来重新格式化员工信息。

通常,开发人员在1)和2)之间采用哪种方法?我认为1)有意义,但API将太专业化,而不是一般化。它是一种在前端(Angular 2)操纵从后端(RESTful)获取的数据的理想方法吗? 在获取完整数据后,在创建相对更多数量的专用API或在前端操作数据之间首选哪种方法?如果有一些标准可以采取哪种方法,我必须考虑哪个方面? 这是正确的思考吗?如果有人对此有所了解,你能给一些指导吗?

1 个答案:

答案 0 :(得分:1)

这是一次非常有趣的讨论。如果您需要一个非常优化的应用程序,那么您需要使用第一个选项。此外,如果您在员工上有一些只能由特权用户访问的列,您可以想象客户端操作不会阻止某些恶意黑客看到它。在这种情况下,您还必须实现第一个选项。

缺点是,在某些时候,你可能会有太多的API做非常类似的事情,使它变得混乱和无效。

关于第二个选项,正如您所指出的那样,使用通用API是一件好事,因此为了加快开发过程并拥有一套更清晰的API,您可以浪费很少的互联网流量作为回报。

您需要平衡您的需求。

  • 资源优化吗?就像数据库查询和互联网请求方面的速度一样。
  • 还是开发时间?你有足够的时间来实现所有这些事情和优化吗?