PHP REST API Routing - PullRequest
       17

PHP REST API Routing

4 голосов
/ 14 апреля 2011

Я изучал API и разрабатывал REST API для проекта, над которым мы работаем.

API принимает соединения только из одного источника в формате JSON, я понимаю, что это нормально.

Если вы понимаете большинство из того, что говорится, я не понимаю 3-й пример кода и куда пойдет информация о маршрутизации.

Пример, который они предоставили:

$data = RestUtils::processRequest();

switch($data->getMethod)
{
    case 'get':
        // retrieve a list of users
        break;
    case 'post':
        $user = new User();
        $user->setFirstName($data->getData()->first_name);  // just for example, this should be done cleaner
        // and so on...
        $user->save();
        break;
    // etc, etc, etc...
}

Часть, в которой я не уверен, состоит в том, как принять исходный запрос, т.е. / get / user / 1 - как перенаправить его на правильную часть сценария.

Если был другой SOвопрос (я искал довольно долгое время) или любые другие образовательные примеры, пожалуйста, укажите мне правильное направление.

Обновление

Я нашел несколько маршрутизации PHPклассы там, но ничто не является просто маленьким и делает то, что говорит на жестяной коробке, все, кажется, делает маршрутизацию + 2000 других вещей сверху.

Теперь у меня есть все классы, которые мне нужны для этогоПроект, названный так, как я хочу получить к ним доступ из URI, например:

/ data / users / data / users / 1 / hash / users / hash / users / 1 / put / users / 1? json = {data}

Таким образом, все они должны использовать класс users, а затем один из методов данных, хэшей или помещать что-либо дополнительное после этого в метод в качестве аргументов.

Если кто-то может простоОбъясните, как работает этот бит, который очень помог бы!

Спасибо:)

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

С самого начала похоже, что на указанном вами сайте нет маршрутизатора или диспетчера.Существует множество фреймворков PHP5, которые включают в себя маршрут и / или отправку, или некоторое описание.(http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks#PHP)

Маршрутизатор - это класс, имеющий список предопределенных маршрутов, которые могут быть действительно базовыми или довольно сложными, все зависит от того, что вы хотите сделать. Хороший маршрутизатор REST IMO будет выглядеть примерно такthis:

:module/:controller/:params

И тогда маршрутизатор затем маршрутизирует правильное действие на основе HTTP-запроса (GET, POST, PUT, DELETE, OPTIONS)

public function getAction($id) {
    // Load item $id
}
0 голосов
/ 14 апреля 2011

В вашем случае вам понадобится правило перенаправления, которое отправит запрос на что-то вроде этого index.php? User = id.Затем вы можете обработать запрос get.

Лучшее решение, которое я нашел для архитектуры php REST (включая маршрутизацию):

http://peej.github.com/tonic/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...