Навигация
Задача Ж: окончательная доработка
Чем заняться на досуге
Вот несколько заданий, которые вы можете попробовать выполнить самое тельно.
• Внесите изменения в первоначальное отображение каталога (действие i nd в контроллере магазина — store), чтобы по запросу клиента выдавал-XML-версия каталога товаров.
12.2. Завершение работы
Процесс программирования завершен, но перед тем, как запустить приложение! в эксплуатацию, мы можем кое-что привести в порядок.
Автогенерация XML-ответа
•§жедыдущем примере мы генерировали XML-ответы вручную, используя rxml-юн. Этот способ позволял управлять порядком возвращаемых элементов. | если этот порядок не имеет значения, можно разрешить Rails генерировать . для объекта модели за нас, вызвав метод модели to_xml.
Другой способ запроса XML-содержимого
Хотя «официальным» HTTP-способом определения типа востребуемого сод жимого является использование Accept-заголовка, направить этот заголовок вашего клиента удается не всегда. Rails предоставляет альтернативный сп мы можем направить сведения о предпочтительном формате в качестве сое ляющей части URL.
Соответствующий тип ответа
Запрос поступает в Rails-приложение с использованием HTTP-протокола. HTTP-сообщение состоит из нескольких заголовков и (не обязательно) из некотороп» количества данных (таких, как POST-данные, полученные из формы). Одним i
REST-интерфейса
Теперь нужно создать шаблон, который вернет XML-документ тому, кто об-рвтлся с запросом. Это можно сделать, воспользовавшись теми же шаблонами чШаЛ. которые использовались для формирования изображения веб-страниц, но есть два более подходящих для этого способа. В первом используются rxml-шаб-лвшы.
Навигация по таблицам
На рис. 12.1 показано, как заказы (orders) вписываются в существующую crpyi туру базы данных. Каждый заказ имеет номер записи товара (1 i ne_i tem), a i дая запись товара связана с товаром (product).
12.1. Генерация XML-материала
яовим на наше приложение REST-интерфейс. REST означает Representational ; Transfer, то есть передача репрезентативного состояния, в чем довольно труд-| тзовить некий смысл. Истинное значение заключается в использовании глаго HTTP (GET, POST, DELETE и т. д.) для обмена запросами и ответами меж-' приложениями.
[Задача Ж: окончательная доработка
За. re дни, которые прошли с наших первых шагов, мы довели торговую про-| щримму до полноценного функционирования и опробовали ее в работе. Успех ; мггавил себя ждать, и за прошедшие месяцы приложение Depot преврати¬сь в основную часть бизнеса. Такое развитие событий заинтересовало тор-шев.