android - android 和 REST API - 管理用户和对服务器的请求的架构
问题描述
我已经为我拥有的应用程序制作了一个 REST API。我已经用 JWT 不记名令牌保护了它。我为这个应用程序制作了一个网站和一个安卓应用程序
该网站是用 ReactJS 制作的。我使用这种模式来处理用户和请求:
- 使用 reducer 和 action 来更新状态
- 在每个请求之前使用中间件检查令牌年龄,并在需要时刷新
- 使用高阶组件检查用户是否有资格到达某个路线
相关项目放在一个地方。
现在到android应用程序..
- 我的请求是通过
okhttp
使用它的活动类中的方法完成的。这是非常错误的,因为有时我需要在该活动之外使用相同的方法。我尝试创建一个 Request 类,但后来我无法使用它,并且将其设为静态不会让我能够使用 runOnUiThread - 用户保存在
sharedpreferences
. 但是每次我需要用户是最佳的时,我都不会访问共享首选项。我在主要活动中创建了一个静态字段用户。以及所有其他需要它的活动都可以毫无问题地访问它。仍然有问题
难道没有更好的方法来管理这一切吗?我的代码目前正在运行,但它几乎是意大利面条。另外,我想在每个请求之前实现一些功能,例如检查令牌并在需要时刷新它,或者在令牌过期时注销用户。我环顾四周,但没有看到任何讨论 android REST API 架构的线程
tl; dr:我用于处理用户和请求的 android 架构现在可以工作了。但它非常有问题。我该如何改进呢?有没有我可以实现的架构?
解决方案
你可以在 Android 上做一个 redux 架构,让你的应用更类似于 ReactJs 网站https://jayrambhia.com/blog/android-redux-intro
对于中间件,您可能想要使用拦截器,但我意识到这对架构没有帮助https://square.github.io/okhttp/interceptors
对于检查用户资格的高阶组件,“用例”会出现在干净架构中,您可以阅读此https://proandroiddev.com/kotlin-clean-architecture-1ad42fcd97fa或只是好的“干净架构 android”
推荐阅读
- javascript - 如何处理 React Web App 中的身份验证流程?
- ios - “pod安装”问题
- excel - 从 Firefox 的列中打开各种链接
- vb.net - VB.NET 中的 Microsoft.AspNet.WebApi.Versioning DefaultInlineConstraintResolver
- c# - 无法通过异步任务中的同步Context.Post() 和progress.Report() 接收实时数据
- node.js - Node.js 在 npm start 上找不到模块错误
- oracle - 休眠一对多关联删除
- python - 从数据框python中的列中的数据获取国家/地区
- markdown - Word to Markdown via pandoc:防止段落中的换行符
- python - python del 运算符如何工作?