Пользовательский базовый путь для Рестлера?
Каков рекомендуемый / предполагаемый способ использования настраиваемого базового пути для 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, это поведение изменилось в последних выпусках. Извините за путаницу, мы обновили документацию сейчас!