Пользовательский базовый путь для Рестлера?

Каков рекомендуемый / предполагаемый способ использования настраиваемого базового пути для Restler, если он не развернут в корне домена / субдомена?

Мой сайт имеет свою собственную маршрутизацию, и я использую Restler 3.0 здесь:

http://www.example.com/api/data/movies

Когда он направляется в /api/data/moviesЯ позволю Рестлеру взять на себя ответственность:

class Say {
    function hello($to='world') {
        return "Hello $to!";
    }
    function hi($to) {
        return  "Hi $to!";
    }
}

use Luracast\Restler\Restler;
$r = new Restler();
$r->addAPIClass('Say', '/api/data/movies/say');
$r->handle();

Тем не менее, каким-то образом он не получает параметры, передаваемые ему через подпуть. Увидеть ниже.

example.com/api/data/movies/say/hi

{
    "error": {
        "code": 400,
        "message": "Bad Request: `to` is required."
    },
    "debug": {
        "source": "Validator.php:366 at validate stage",
        "stages": {
            "success": [
                "get",
                "route",
                "negotiate"
            ],
            "failure": [
                "validate",
                "message"
            ]
        }
    }
}

example.com/api/data/movies/say/hi/Jim

{
    "error": {
        "code": 404,
        "message": "Not Found"
    },
    "debug": {
        "source": "Routes.php:431 at route stage",
        "stages": {
            "success": [
                "get"
            ],
            "failure": [
                "route",
                "negotiate",
                "message"
            ]
        }
    }
}

Я попытался Google, но не нашел ничего, имеющего отношение к моей проблеме. Как я могу заставить это работать? Каков рекомендуемый / предполагаемый способ использования Рестлера под URL-адресом подкаталога вместо корневого домена / поддомена?

2 ответа

Решение

Согласно документации рестлера

Вы должны пройти to параметр в вашем запросе URL, поэтому я думаю, что ваш URL должен быть example.com/api/data/movies/say/hi?to=test,

Но если вы хотите добавить пользовательскую маршрутизацию, проверьте, как работает Restler Routing.

Этот API-сервер предоставляет следующие URI

ПОЛУЧИТЕ сказать / привет /{к} ay ​​Скажи:: привет ()

Я не знаком с Рестлером, но я надеюсь, что это поможет вам.

Поскольку для автоматической маршрутизации требуются типы примитивов, используемые для сопоставления с путем URL, это поведение изменилось в последних выпусках. Извините за путаницу, мы обновили документацию сейчас!

Другие вопросы по тегам