首页 > 解决方案 > android 和 REST API - 管理用户和对服务器的请求的架构

问题描述

我已经为我拥有的应用程序制作了一个 REST API。我已经用 JWT 不记名令牌保护了它。我为这个应用程序制作了一个网站和一个安卓应用程序

该网站是用 ReactJS 制作的。我使用这种模式来处理用户和请求:

  1. 使用 reducer 和 action 来更新状态
  2. 在每个请求之前使用中间件检查令牌年龄,并在需要时刷新
  3. 使用高阶组件检查用户是否有资格到达某个路线

相关项目放在一个地方。

现在到android应用程序..

  1. 我的请求是通过okhttp使用它的活动类中的方法完成的。这是非常错误的,因为有时我需要在该活动之外使用相同的方法。我尝试创建一个 Request 类,但后来我无法使用它,并且将其设为静态不会让我能够使用 runOnUiThread
  2. 用户保存在sharedpreferences. 但是每次我需要用户是最佳的时,我都不会访问共享首选项。我在主要活动中创建了一个静态字段用户。以及所有其他需要它的活动都可以毫无问题地访问它。仍然有问题

难道没有更好的方法来管理这一切吗?我的代码目前正在运行,但它几乎是意大利面条。另外,我想在每个请求之前实现一些功能,例如检查令牌并在需要时刷新它,或者在令牌过期时注销用户。我环顾四周,但没有看到任何讨论 android REST API 架构的线程

tl; dr:我用于处理用户和请求的 android 架构现在可以工作了。但它非常有问题。我该如何改进呢?有没有我可以实现的架构?

标签: androidrestauthenticationarchitecture

解决方案


你可以在 Android 上做一个 redux 架构,让你的应用更类似于 ReactJs 网站https://jayrambhia.com/blog/android-redux-intro

对于中间件,您可能想要使用拦截器,但我意识到这对架构没有帮助https://square.github.io/okhttp/interceptors

对于检查用户资格的高阶组件,“用例”会出现在干净架构中,您可以阅读此https://proandroiddev.com/kotlin-clean-architecture-1ad42fcd97fa或只是好的“干净架构 android”

在此处输入图像描述


推荐阅读