Как соединить фронт энд с бэкэндом?

Пацаны, нихуя не понимаю в вэбэ(ну запилить с нуля фронт-энд могу) - хочу запилить магазин ключей с нуля чтобы по ходу разобраться, плюс сделать лаунчер, что скачивал бы несколько моих проектов. Це как реализовати?

То есть магазин ключей будет работать, допустим, по такому принципу:

Открываю cPanel, пишу тестовую кнопку что брала бы ключ из базы данных и показывала бы юзеру.

Когда чел покупает ключ - берётся ключ из тейбла доступных ключей, добавляется ему в тейбл купленных ключей.

Далее он может с-аксессить это, допустим, нажав на кнопку в javascript и послав... sql-запрос? Нет, падажжи - должно же быть 3 слоя - не помню точно названия, 4 года назад это узучали. Чето-там, business layer, database layer? Если пользователь сможет делать запросы к sql это небезопасно. А как разделить тогда? Как соединить фронт-енд и бэкэнд?

Вот собственно за этим и создал пост.

Кстати, забыл ещё и че там по дизайну баз данных. Там вроде два тейбла-существительных всегда всегда должны быть соединены тейблом-"глаголом"? Только не помню какая дата в них долнжа быть

Table User: id, gamesowned

Table gamesowned: id, userid, gameid

Table games: id, gamesowned_id

Как-то так?

33
16 комментариев

Пацаны, нихуя не понимаю в вэбэТа ну его нахуй, может пивчанского?

21
Ответить

Лол

6
Ответить

Пеши ответ сцука

2
Ответить

Зачем тебе этот php, раз на фронте хоть немного шариш бери nodejs(express). С базой может общаться только сервер причем он общается с базой через ОРМ поэтому не нужно писать sql скрипты, достаточно разобраться с ОРМ(для express обычно используют sequelize). Как выше написали на беке нужно создать ендпоинты к примеру GET /keys то есть когда фронт шлёт запрос GET https://backend.com/keys сервер достает все ключи и возвращает массив ключей на фронт, что дальше делать с этим массивом решает фронт

4
Ответить

Можно по-разному сделать, в зависимости от уровня сложности проекта.

Можно сделать с логином и аккаунтом. Но это будет возня с регистрацией и логином. В этом случае ты делаешь POST запрос к бекенду на PHP. Сначала проверяешь, что пользователь залогинен, потом что он действительно имеет право смотреть на ключ, потом показываешь ключ.

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

Называй в БД как хочешь, но желательно в нижнем регистре и разделяя нижним подчеркиванием. Например таблица "user", а у нее поля "id" и "email". Потом таблица "bought_game" (в единственном числе) а внутри поля "user_id", "game_id", "key_id", "date". Как-то так короче.

3
Ответить
Комментарий удалён модератором