Web services React和restfulweb服务api通信

Web services React和restfulweb服务api通信,web-services,rest,api,reactjs,restful-architecture,Web Services,Rest,Api,Reactjs,Restful Architecture,我对reactjs和RESTfulWebServiceAPI体系结构有一个问题。在一般情况下,这不会是一个问题,但如果我有这样的情况。 我已经让React web在一个页面中使用服务器上许多数据库表(这些表是相关的)中的api数据(在React中,它将被拆分为多个组件) 但我了解到,就RESTfulWeb服务而言,我们应该为数据库表中的一个资源设置一个url。如果我们需要相关的资源,我们可以使用嵌套的url。让我举个例子。我有4个数据库表,分别是账单、工单、销售任务和产品。有了这些关系。Bill

我对reactjs和RESTfulWebServiceAPI体系结构有一个问题。在一般情况下,这不会是一个问题,但如果我有这样的情况。 我已经让React web在一个页面中使用服务器上许多数据库表(这些表是相关的)中的api数据(在React中,它将被拆分为多个组件)


但我了解到,就RESTfulWeb服务而言,我们应该为数据库表中的一个资源设置一个url。如果我们需要相关的资源,我们可以使用嵌套的url。让我举个例子。我有4个数据库表,分别是账单、工单、销售任务和产品。有了这些关系。Bill有一个工单,工单有多个销售作业,销售作业有一个产品。 如果我需要这个react页面的所有数据,我至少需要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
或者另一种方法是让BillURL拥有这个react页面所需的所有嵌套数据(非常庞大),这样我就可以有一个http请求,并将所有数据传递到每个组件中

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

  • 分割成多个数据块。
    • 那么。将是根组件作业吗 获取数据并传递到子组件中。或者每个组件获取自己的 数据
  • 只需加载一个巨大的请求

    • 对于RESTfulWeb来说,这是一种糟糕的做法 服务因为看起来我设计的url/api/bills/1就是为了这个目的 网页。所以,如果我有更多像ios、android这样的平台,那么我需要 更多的网址吗? 也许像

      • /web/api/bills/1?reactView1=true
      • /web/api/bills/1?reactView2=true
      • /ios/api/bills/1
      • /android/api/bills/1

  • 根据你的信息,我说不出哪种方法更好。然而,我能说的是:

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

    “就restful web服务而言,我们应该为数据库表中的一个资源设置一个url”。不,这完全是错误的,就像每个数据库表有一个屏幕是错误的一样。数据库应以最方便的方式存储数据。API应该以客户机需要的形状提供数据,而不是以便于数据库存储的形状提供数据。REST只处理API的形状。它没有提到任何其他层。