RESTful роутинг

fawkes

Новичок
Что делать после того, как задал карту в роутере, указал метод GET или POST (PUT, DELETE)?
В slim например, в request методы isGet(), isPost(), etc.
А дальше то что?
Это и есть RESTful роутер?
Ничего внятного в доках не нашел.

В чем различие GET и POST методов для роутера?
 

fawkes

Новичок
Вопрос в том, не как задаются маршруты, это то фигня реализовать, а в том, что делать дальше с ними, когда у меня есть данные.
Например, в зависимости от того, какая ссылка имеется я вызываю необходимый контроллер/действие.
А что делать, если для конкретной ссылки указан метод POST?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Для ссылки? Если указан метод пост, то, видимо, должен вызываться соответствующий обработчик, для пост запроса. Я не до конца понимаю твоего вопроса, если честно. В часности, что за ссылка?
 

fawkes

Новичок
Насчет первой, там показано, что если GET вызывается метод get_index(), а при POST метод post_index().
Насчет второй, там показано, как задаются маршруты.
c0dex написал(а):
Если указан метод пост, то, видимо, должен вызываться соответствующий обработчик, для пост запроса.
псевдокод-пример можно?
c0dex написал(а):
Я не до конца понимаю твоего вопроса, если честно.
ок, такой пример:
PHP:
$route = new router();
$route->set('news', 'POST /news/:id', ['controller', 'action'])
         ->conditions(['id' => '[0-9]+'])->run();
Я задал маршрут, разобрал урл и если совпадает REQUEST_URI вызываю controller и action.
В массиве данных у меня остался параметр: POST, что я делаю с ним?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fawkes
В ларавеле смотрел как сделано? Есть два экшна в контроллере get_имя_метода и post_имя_метода. Если мы находим соответствие между между url и каким-то роутом, то ищем в соответствующем контроллере get_ экшн для get запроса. Аналогично с post. Я просто не представляю как это описать в псевдокоде.
 

Ragazzo

TDD interested
fawkes
для самого действия:
PHP:
$model->attributes = $_POST;

if ($model->validate())
{
   $model->save();
   $data = $model->rest->attributes;
   $response = new Response(201,$data);
}
else
{
     //validation errors, response
}
$this->request->sendResponse($response);
 

fawkes

Новичок
Есть два экшна в контроллере get_имя_метода и post_имя_метода. Если мы находим соответствие между между url и каким-то роутом, то ищем в соответствующем контроллере get_ экшн для get запроса. Аналогично с post.
хорошо, это без проблем. А дальше что? Все так просто?
В голове не укладывается.
 

Absinthe

жожо
Роутер дает нужный контроллер в зависимости от метода.
А не метод проверяется в контроллере.
 
Сверху