React应用程序(或任何SPA)应如何与HATEOAS后端交互?

纳雷什

基本问题是,每页应该有一个HATEOAS入口点还是整个应用程序应该有一个入口点?

我见过的大多数示例都使用HATEOAS后端实现单个页面,例如,使用prevnext链接分页的列表但是,当应用程序导航到功能完全不同且需要不同入口点的其他页面时,会发生什么?一个人如何组织这样的应用程序?

具体示例:我们有一个带有标签导航的应用。主页选项卡显示产品目录,因此入口点将/products返回产品的页面1和分页链接。但是,现在我单击“订单”选项卡,其中必须显示过去的订单列表。该页面需要一个完全不同的入口点/orders,主页选项卡对此一无所知。实际上,用户可以使用深层链接直接导航到“订单”标签。

如何考虑这个问题?有没有说明这种方法的例子?

翻转

有几种解决方法。这是两个:

  1. SPA从uri中获取上下文(例如id),并使用它在API上进行搜索。API可以描述模板化的链接/操作,以按其ID搜索资源。
  2. 让服务器决定渲染什么,而不是进行客户端路由。

我们将朝着#2迈进。如果我们有一个uri,例如:

https://spa.example/https://api.example/foo/bar

我们使用此uri的路径部分并点击API。根据API响应的内容,我们决定渲染什么。这意味着这些端点的大多数路由都委托给服务器,这与HATEOAS更加一致。

在这种情况下,路径部分是整个绝对URI,但我们也支持相对uri,并具有默认的基本uri。因此,在实践中,这两个uri是等效的(对于我们的SPA):

https://spa.example/https://api.example/foo/bar
https://spa.example/foo/bar

我们开发并使用自动整理/反应整理来完成大部分繁重的工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将与Rails API后端交互的ember-cli应用程序部署到VPS

来自分类Dev

如何模拟angularjs应用程序的后端?

来自分类Dev

如何保护应用程序-后端通信?

来自分类Dev

iPhone应用程序如何与CouchDB交互?

来自分类Dev

如何通过运行在Expo上的React Native应用程序连接到本地Rails后端?

来自分类Dev

如何在Android设备上使用Node js后端运行React Native应用程序?

来自分类Dev

根 React 组件如何与应用程序的其余部分交互?

来自分类Dev

Android应用程序后端

来自分类Dev

该应用程序应如何处理延迟的SKPaymentTransaction?

来自分类Dev

Unix应用程序应如何记录大量数据?

来自分类Dev

Flatpak应用程序的文件应如何删除?

来自分类Dev

如何使用Django restframework作为移动应用程序的后端

来自分类Dev

如何使移动应用程序的服务器后端?

来自分类Dev

如何强制更新单页应用程序(SPA)页面?

来自分类Dev

后端应用程序如何验证JavaScript框架应用程序发送的JWT令牌?

来自分类Dev

应用程序服务器如何与Http Server交互

来自分类Dev

测试kivy编写的应用程序时如何与UI交互?

来自分类Dev

如何在React应用程序中页面上的任何位置检测keydown?

来自分类Dev

使用react-router在SPA应用程序中刷新页面时如何打开index.html页面

来自分类Dev

CakePHP应用程序作为移动应用程序的后端

来自分类Dev

在同一laravel应用程序项目中托管react应用和laravel后端(管理面板)

来自分类Dev

android应用程序的后端建议

来自分类Dev

移动应用程序的前端-后端通信

来自分类Dev

Android聊天应用程序后端

来自分类Dev

Web应用程序后端的C ++

来自分类Dev

PhantomJS和AngularJS SPA应用程序

来自分类Dev

什么是单页应用程序(SPA)?

来自分类Dev

AngularJS的完整SPA应用程序

来自分类Dev

PhantomJS和AngularJS SPA应用程序

Related 相关文章

  1. 1

    如何将与Rails API后端交互的ember-cli应用程序部署到VPS

  2. 2

    如何模拟angularjs应用程序的后端?

  3. 3

    如何保护应用程序-后端通信?

  4. 4

    iPhone应用程序如何与CouchDB交互?

  5. 5

    如何通过运行在Expo上的React Native应用程序连接到本地Rails后端?

  6. 6

    如何在Android设备上使用Node js后端运行React Native应用程序?

  7. 7

    根 React 组件如何与应用程序的其余部分交互?

  8. 8

    Android应用程序后端

  9. 9

    该应用程序应如何处理延迟的SKPaymentTransaction?

  10. 10

    Unix应用程序应如何记录大量数据?

  11. 11

    Flatpak应用程序的文件应如何删除?

  12. 12

    如何使用Django restframework作为移动应用程序的后端

  13. 13

    如何使移动应用程序的服务器后端?

  14. 14

    如何强制更新单页应用程序(SPA)页面?

  15. 15

    后端应用程序如何验证JavaScript框架应用程序发送的JWT令牌?

  16. 16

    应用程序服务器如何与Http Server交互

  17. 17

    测试kivy编写的应用程序时如何与UI交互?

  18. 18

    如何在React应用程序中页面上的任何位置检测keydown?

  19. 19

    使用react-router在SPA应用程序中刷新页面时如何打开index.html页面

  20. 20

    CakePHP应用程序作为移动应用程序的后端

  21. 21

    在同一laravel应用程序项目中托管react应用和laravel后端(管理面板)

  22. 22

    android应用程序的后端建议

  23. 23

    移动应用程序的前端-后端通信

  24. 24

    Android聊天应用程序后端

  25. 25

    Web应用程序后端的C ++

  26. 26

    PhantomJS和AngularJS SPA应用程序

  27. 27

    什么是单页应用程序(SPA)?

  28. 28

    AngularJS的完整SPA应用程序

  29. 29

    PhantomJS和AngularJS SPA应用程序

热门标签

归档