Tokishu
@Tokishu
Что?

Почему я не могу получить параметр из url (api/users/параметр)?

У меня возникла проблема, я пишу свой первый RestAPI, и проблема в том что я не могу получить параметры из url, мне нужно получить uuid из url uuid/айди

В итоге мне дает ответ Unknown GET endpoint буду благодарен за ответ.

// ...
$request_uri = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$endpoint = end($request_uri);

// GET
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    switch ($endpoint) {
        case 'uuid':
            $uuid = null;
            if (preg_match('/^\/uuid\/(\d+)$/', $_SERVER['REQUEST_URI'], $matches)) {
                $uuid = $matches[1];
            }
            CheckUUID($uuid,$conn);
            break;
// ...
        default:
            // Обработка запроса для неизвестного ресурса
            echo "Unknown GET endpoint";
    }
}


как я пробовал решить проблему: Менял $endpoint на $_SERVER['REQUEST_URL']

и менял /^/uuid/(\d+)$/ на /^/uuid/(.+)$/
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@3v4l
У тебя же переменная $endpoint не соответствует case 'uuid':, а там будет сам “UUID” (число, которое ты хочешь получить), в кейсе пиши сразу регулярку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Функция end($request_uri) вернёт что? Последний элемент массива. А в последнем элементе этого массива хранится что? Число "айди". И тогда switch($endpoint) никогда не попадёт в case 'uuid':, потому что в $endpoint хранится не uuid, а число. Андэрстэнд?
Ответ написан
@402d
начинал с бейсика на УКНЦ в 1988
у вас урл кончается названием точки входа
маска выделения uuid кончается долларом (конец строки) после цифры

вот ваши урлы и не подходят под маску
Ответ написан
@pantsarny
Explode и end - там ошибки
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽