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 条评论
登录 后参与评论

相关文章

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

如何使Java应用程序与网站交互

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

无法与Cordova应用程序中的任何内容进行交互

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

如何使用 Django 后端保持用户登录 React 应用程序

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

如何将 React 应用程序与 filemaker 服务器集成为后端

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

React 应用程序后端 Firestore useEffect 无法正常工作

Android应用程序后端

阻止indexedDB时,应用程序应如何反应

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

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

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

React.js创建反应应用程序我的应用程序后端集成

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

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

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

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

如何打开控制台以与Express应用程序交互?

如何在单个 Heroku 应用程序中部署前端(React.js)和后端(Node.js)

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

如何在应用程序中的任何位置使用AWS Amplify React组件

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

如何在Spring应用程序中更改Hateoas输出格式?

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

Web应用程序后端的C ++

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