Имеется SPA, в котором (для примера) есть 3 основных функционала: управление продуктами, поставщиками, реализаторами. Для каждого из описанного функционала на бекенде написан соответствующий класс.
По мере нажимания на всякие кнопочки, к примеру, в "управлении продуктами" я делаю так: отправляю ajax запрос на сервер, в котором указываю $_POST['class'] - объект какого класса создавать (в данном случае "управлении продуктами"), и $_POST['method'] - какой метод вызывать. Ну и в зависимости от полученного ответа выполняем соответствующее действие на фронтенде.
Вопрос в том, как более грамотно организовать взаимодействие фронтенда и бекенда через ajax?
Если никак не проверять что пришло в запросе с клиента, то залётный хакер сможет зачотно порезвиться, пытаясь угадать названия классов-методов, не имеющих отношения к позволенному функционалу. Для неавторизованных пользователей я бы вообще обработку запросов жестко ограничил.
На backend вам достаточно создать класс базы данных в котором будет куча методов типо getClients or getProductsAll or getProductId. Зачем создавать какие-то объекты? у вас получаеться SPA вам нужен только API а он отдаёт на запрос ответ, ответ это запись из БД.