React和Restful Web服务api通信

时间:2017-05-31 13:56:14

标签: web-services rest api reactjs restful-architecture

我在reactjs和restful web服务api架构方面遇到了麻烦。在通常的情况下,这不会是一个问题,但如果我有这样的情况。 我让React web在一个页面上的服务器上消耗来自许多数据库表(这些表是相关的)的api数据(反应它将被分成多个组件)

但我了解到,在宁静的Web服务方面,我们应该为1个资源提供1个url,这是一个数据库表。如果我们需要相关资源,我们可以使用嵌套网址。让我举个例子。我有4个数据库表,其中包括Bill,Work Order,Sale Job和Product。与这些关系。 Bill有一个工作订单,工作订单有很多销售工作,销售工作有一个产品。 如果我需要这个反应页面的所有数据,我需要至少4个http请求。使用url嵌套方法,如下所示。

1. /api/bills/1
2. /api/bills/1/workOrder
3. /api/bills/1/workOrder/saleTxns
4. /api/bills/1/workOrder/saleTxns/product

或者另一种方法是让bill url拥有我需要的所有嵌套数据这个反应页面(这是巨大的)所以我可以只有1个http请求并将所有数据传递到每个组件。

所以我的问题是哪种方法更好。

  1. 分成多个数据块。
    • 那么。它是根组件的工作吗? 获取数据并传入子组件。或者每个组件都获取自己的组件 数据。
  2. 只需加载1个巨大的请求。

    • 这对于宁静的网络来说是不好的做法 服务?因为它看起来像我设计url / api / bills / 1只是为了这个反应 网页。所以,如果我有更多的平台像ios,android那么我需要 更多的网址? 也许就像。

      • / web / api / bills / 1?reactView1 = true,
      • / web / api / bills / 1?reactView2 = true,
      • / IOS / API /票据/ 1
      • /机器人/ API /票据/ 1

1 个答案:

答案 0 :(得分:0)

根据您的信息,我不能说哪种方法更好。然而,我可以说的是:

  • 正如Eric Stein所说,没有要求只允许一个网址与一个数据库表对应。
  • 如果这是您前端的常见操作,那么开发API端点是有意义的,它会响应嵌套在指定bill下面的所有信息。它为您节省了一些前端代码/讨厌的回调逻辑。
  • 话虽如此,做4个请求也不应该是世界末日。如果这更适合您的应用程序的其余部分,并且您以合适的方式开发逻辑,那么这不应该是一个太大的问题。
  • 哪个组件应该处理哪个操作再次取决于您的应用程序的设计方式以及您希望如何继续构建它。不要害怕只是从一种方法开始,也许你应该稍后改变它。毕竟这是代码,而不是具体的。