Android и REST API - архитектура для управления пользователями и запросами к серверу - PullRequest
0 голосов
/ 08 июля 2019

Я создал REST API для моего приложения. Я обеспечил это с жетонами на предъявителя JWT. Я сделал сайт и приложение для Android для этого приложения

Сайт сделан с использованием ReactJS. Я использовал этот шаблон для обработки пользователей и запросов:

  1. использовать редукторы и действия для обновления состояния
  2. использовать промежуточное программное обеспечение перед каждым запросом для проверки возраста токена и обновлять при необходимости
  3. использовать компоненты высокого порядка, чтобы проверить, имеет ли пользователь право на определенный маршрут

связанные предметы размещены в одном месте.

Теперь в приложение для Android ..

  1. Мои запросы выполняются через okhttp в методе внутри класса активности, который его использует. Это довольно глючно, потому что иногда мне нужно использовать этот же метод вне этой деятельности. Я попытался создать класс Request, но потом не смог его использовать, а статический не позволил бы мне использовать runOnUiThread
  2. пользователь сохраняется в sharedpreferences. НО мне не нужен доступ к общим настройкам каждый раз, когда мне нужно, чтобы пользователь был оптимальным. Я сделал пользователь статического поля в основной деятельности. и все другие виды деятельности, которые в нем нуждаются, могут без проблем получить к нему доступ все еще глючит

нет лучшего способа справиться со всем этим? мой код на данный момент работает, но это в значительной степени спагетти. Кроме того, есть некоторые функции, которые я хотел бы реализовать перед каждым запросом, такие как проверка токена и его обновление при необходимости или выход из системы пользователя, если срок действия токена истек. Я оглянулся, но не увидел ни одной темы, рассказывающей об архитектуре Android REST API

tl; dr: моя архитектура Android для обработки пользователей и запросов теперь работает. но это очень глючит. Как я могу улучшить это? Есть ли уже созданные архитектуры, которые я могу реализовать?

1 Ответ

2 голосов
/ 08 июля 2019

Вы можете создать архитектуру редукса на Android, чтобы ваше приложение стало более похожим на сайт ReactJs https://jayrambhia.com/blog/android-redux-intro

Для промежуточного программного обеспечения вы, вероятно, захотите использовать Interceptors, хотя я понимаю, что это не помогает в архитектуре https://square.github.io/okhttp/interceptors

Для компонентов более высокого порядка для проверки права пользователя на ум приходят "варианты использования" в чистой архитектуре, вы можете прочитать это https://proandroiddev.com/kotlin-clean-architecture-1ad42fcd97fa или просто хорошую "чистую архитектуру android"

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...