Как должна взаимодействовать база данных с клиентскими приложениями?

Здравствуйте!
Я разрабатываю хранилище файлов.

Вроде бы все работает, но мне стало интересно как должна взаимодействовать база данных (Mysql) с клиентскими приложениями?

На данный момент есть только веб-клиент, который работает с базой данных, напрямую отправляя запросы.
Но в дальнейшем я хотел бы масштабировать проект, создать клиент под андроид.

Скажите, пожалуйста, свои варианты работы с базой данных.
  • Вопрос задан
  • 2683 просмотра
Решения вопроса 1
Для полноценной работы посмотрите в сторону REST API
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
metamorph
@metamorph
Не совсем корректный вопрос.
База данных самостоятельно с клиентами взаимодействовать не должна (за редкими исключениями, полагаю), это в любом случае задача прослойки.

А дальше варианты: можно сделать отдельные прослойки под API и под веб, в простых случаях можно и одной обойтись (что-то типа if (хочет json) { вернуть json; } else {вернуть html} )
Ответ написан
Комментировать
GM2mars
@GM2mars
Нужно контроллер, который выполняет роль прослойки от веб-клиента до базы сделать универсальным и конфигурируемым. Например, контроллеру из вне приходит запрос (не важно от кого именно):
[{action: getArticle, target: android, count: 20, hash: 5674%4%$7^5bbss, и так далее...}]
И когда наш контроллер умеет разбирать и анализировать пришедший в запросе джейсон, ему уже понятно что делать дальше. К примеру я в своем сервисе сделал так, если в запросе указано что ajax: true то я отдаю только данные в виде json, если указано что ajax: false, то я отдаю сформированные html код. Главное продумать универсальный контроллер, не забывая про безопасность.
А кому надо раздаем API типа если хотите получить 20 записей отправьте такой-то запрос...

Конечно есть разные типы запросов под разные нужды и с разной защищенностью, я привел лишь общий смысл работы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект