Хочу сделать такую связь клиентского webapp с базой данных:
вся get requests будут отправляться напрямую в базу данных с клиентской части, т.к. в этом приложении вся информация открыта и хакать нечего.
С помощью этого рассчитываю увеличить скорость получения информации клиентом, т.к. не будет тратиться время на схему типа: api запрос к серверу > Сервер спрашивает базу данных > база данных отвечает серверу > сервер отвечает клиенту. Ну и сократить код немного.
А вот все другие requests будут проходить исключительно через сервер, и только сервер будет иметь токен, с помощью которого можно что либо изменять в базе данных. Сервер же будет производить валидацию тех данных, что шлет клиент, чтобы, например, умный клиент не мог сохранить данные в другого пользователя.
Никогда не доверяйте данным полученным от третьей стороны.
Может в вашей БД и нет конфиденциальных данных. Но есть еще целостность и доступность, которые могут быть нарушены. А кроме того, в какой-то момент может появится необходимость ранжировать пользователей, выдавать права доступа и контролировать их. Ну или появятся конф. данные.
Всегда пишите свой код так, как будто это ПО для искусственной почки. И практика хорошая и привычка полезная.
Любой ввод от пользователей надо валидировать и фильтровать.
Мне кажется что сервер - это хорошее место в архитектуре, для этих задач.
Куда вы хотите эту логику вынести? Прямо перед БД поставить? А как вы будете её расширять, если что? Половина кода на сервере и еще половина прямо перед бд будет?
Я вижу, что задача у вас, повысить скорость. И я бы попробовал так сделать в формате proof-of-concept, чтобы посмотреть какой выхлоп получаем. И если вы так будете только запросы на чтение слать, то может и выйдет жизнеспособное решение.
Но персонально я, исходя из своего опыта фильтровал бы все. Пусть и за счет падения производительности. А на компромисс бы пошел, если скорость критична, а прирост 3-5 раз.