Как сохранить данные приложения Android на локальном сервере SQL - PullRequest
0 голосов
/ 28 мая 2019

Мне было поручено создать новое приложение для Android.Мне нужно сохранить данные приложения на локальном сервере SQL.Нет необходимости передавать данные из SQL Server в приложение для Android, то есть мне нужен только C в CRUD.Я не уверен, как мне все это настроить.Кто-нибудь может помочь с архитектурой?Нужно ли мне сначала сохранить данные в локальной БД SqlLite, а затем запустить что-то для передачи в локальную БД SQL Server?

Я никогда не использовал Azure и не создавал полноценный сервис в .NET.У нас есть старый веб-сервис .NET (.asmx), который я бы предпочел использовать для этого.Это возможно?

1 Ответ

0 голосов
/ 28 мая 2019

Таким образом, есть несколько элементов в этом вопросе.Я отвечу в трех частях.

1.Web (REST) ​​

Вам понадобится (как вы упомянули) служба RESTful для подключения внешних запросов к локальному серверу SQL.Я полагаю, что вы можете использовать .NET (.asmx) для создания такого API (есть много руководств, которые вы можете найти в Интернете).Вы также можете использовать что-то вроде ASP .NET Core или более современные технологии, такие как Node.js, Ruby on Rails и т. Д.

Вам понадобится одна конечная точка для "C" CRUD.Будет ли это конечная точка PUT или POST, будет зависеть от конкретных деталей вашей реализации и варианта использования.Смотрите этот SO-ответ: PUT против POST в REST

Вам также, вероятно, понадобится какая-то система аутентификации, чтобы гарантировать доступ к вашей базе данных только авторизованным лицам.Для этого вы можете попробовать что-то вроде Microsoft Identity Framework, более индивидуальную схему аутентификации (см. this ) или другие библиотеки.

2.Android

На стороне Android вам потребуется доступ к API через Интернет.Самый простой способ сделать это - использовать какую-то сетевую библиотеку (я бы порекомендовал OkHttp ).Поскольку сетевые запросы (использование API) могут занимать время, настоятельно рекомендуется делать это вне основного потока / потока пользовательского интерфейса.Делать это в Android стало намного проще благодаря использованию библиотеки потоков, такой как RxJava .Существует множество примеров использования OkHttp с RxJava (см., Например, this answer).

3.Кэширование

Это своего рода дополнительная часть кредита.Если вы хотите кэшировать операции создания на устройстве Android (например, если у вас нет сети), вам необходимо использовать постоянное хранилище на устройстве.Если это не является обязательным требованием, вы можете пропустить это.Для постоянного хранения на устройстве я бы порекомендовал заглянуть в постоянную библиотеку Android Room (которая также отлично интегрируется с RxJava).

Просто чтобы прояснить ситуацию, вам нужно будет только сохранитьданные в локальную базу данных SqLite в том случае, когда вы хотите кэшировать операции создания.

Удачи!

...