REST с PHP, как сопоставить URL с базой данных - PullRequest
1 голос
/ 23 февраля 2012

Я использую учебник REST http://www.gen -x-design.com / archives / create-a-rest-api-with-php /

Я не понимаю, как URL-адрес в адресной строке может быть сопоставлен с базой данных (xml / sql) для вывода определенного объекта с его атрибутом.

Так что, если в адресной строке было 'localhost / people / 1', как можно связать ее с базой данных для извлечения релевантной информации, используя rest, поэтому запрос будет "SELECT * FROM people where id =". $ Id = 1 .

Кодовый пример с развалом теории был бы фантастическим

Спасибо

1 Ответ

1 голос
/ 23 февраля 2012

Если под " выводить конкретный объект с его атрибутом " вы подразумеваете буквальный объект PHP, это будет включать сериализацию и все такое, но я не думаю, что это то, что вы ищете. Вместо этого, чтобы получить набор данных из базы данных, сделав запрос REST, примерно так будет работать поток:

  1. Запрос REST получен с помощью GET

  2. Приложение анализирует параметры из URL

  3. Приложение запрашивает базу данных, используя параметры

  4. Приложение форматирует данные для возврата в определенном формате, обычно в формате JSON или XML.

  5. Приложение возвращает данные вызывающей стороне

Что касается сопоставления с базой данных, это больше связано с техникой, используемой для обслуживания данных. Наиболее распространенный метод называется Object-Relational Mapping , и существует множество популярных ORM для PHP, которые реализуют эту функцию, например Doctrine .

URL-адрес и метод в вашем запросе REST предоставляют параметры и инструкции о том, что делать (GET, POST, DELETE и т. Д.). Когда у вас есть эти вещи, должно быть довольно просто создать логику приложения для соединения этих параметров с вашим ORM, получения данных, их форматирования и возврата.

[РЕДАКТИРОВАТЬ] Полагаю, я немного обобщаю вышеизложенное. REST работает намного проще, используя шаблон MVC (как в учебнике, на который вы ссылаетесь). Таким образом, URL api.somesite.com/user/show/1 означает:

  • Контроллер: пользователь
  • Действие: показать
  • Параметр: 1

Контроллер - это файл, который содержит методы, называемые действиями. Параметр передается методу действия, где его можно использовать.

В соответствии с парадигмой MVC, ваши Модели будут обрабатывать соединения с базой данных. В зависимости от вашего стиля модель может быть «толстой моделью», и вы будете выполнять всю входную фильтрацию / проверку, а также форматировать их вывод.

Чтобы ответить на ваш вопрос в комментарии, «синтаксический анализ» обычно выполняется с помощью функции маршрутизации, которая разбивает URL-адрес и отправляет запрос соответствующему контроллеру / действию.

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