169 похожих чатов

Собственно, суть такая, что надо написать АПИ по взаимодействию с

сервисом (на данный момент пока что с пользователями). Никакой фреймворк не используеться. Чистый php. Вторая суть - в папке поддомена (по сути корень) лежат файлы\скомпиленый проект на вью, который должен по API общаться сервисом (по сути REST CRUD).

Структура папок с файлами:
/api/config/database.php - класс бд (конект к бд, PDO)

/api/objects/user.php - класс "Пользователь", внутри которого у нас собственно методы (1)

/api/users/create.php - инклюдит файл с бд и класс "Пользователь", создает нового юзера (по сути POST)
/api/users/read.php - также инклюдит, показивает список всех пользователей (GET запрос без ID)
/api/users/read_one.php - инклюдит, показивает конкретного пользователя по ID (по сути GET запрос с ИД)
/api/users/update.php - инклюдит, апдейтит юзера по ИД или массивом
/api/users/delete.php - инклюдит, удаляет пользователя

*инклюдит - имееться ввиду, что в этих файла подключаються файлы с классом конекта к БД и классом "Пользователь". В классе "Пользователь" собственно и прописаны методы, которые используються и взаимодействуют с БД.

При обращении к этим файлам, напрямую, и передачей параметров, собственно и происходят действия. Но по логике так быть не должно, а именно необходимо просто на урл /api/users слать запрос (метод + данные при необходимости) и показивать тот результат, который необходим в соответствии с методами.

По логике вещей, необходимо в папке users создать файл index.php, который будет ловить запрос и параметры. Относительно типа запроса инклюдить\вызывать тот файл, который отвечает за логику этого запроса. Т.е. допустим

if ($request = "POST) { include_once('create.php') : }
else if ($request = "GET") { include_once('update.php'); }
else if .... etc..

Насколько адекватное или правильное решение?

1 ответов

5 просмотров

Ну в node js я так и проверял запросы, пост гет рес и тд, не знаю как на пхп

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта