Я создаю веб-приложение, которое достаточно просто, я могу использовать многие стандартные функции Ruby on Rails 3 (добавление и удаление элементов модели и т. Д.).
Теперь я хочу выделить службу REST, которая возвращает иерархию элементов в одном потоке.
Например, в модели у меня есть:
- ProductType, который определяет, какие комбинации ComponentTypes разрешены. Пример: подарочная корзина с несколькими бутылками вина и 3 фруктами.
- ComponentTypes. Примеры: фрукты, винные бутылки и т. Д.
- Компоненты: это воплощения типов компонентов. Примеры: Совиньон блан, Яблоко, Груша и т. Д.
Теперь я хотел бы предоставить службу отдыха «меню», которая отображает их иерархию. Это должно выглядеть примерно так:
"menu": [
{ "name":"Gift basket", "description":"some description", "price": 0, "isDefaultSelected": false, "isMultiselect":false ,"isContainer":true, "children":[
{ "name":"Wine", "description":"", "price": 0, "isDefaultSelected": false, "isMultiselect":false ,"isContainer":true, "children":[
{ "name":"Sauvignon Blanc", "description":"...", "price": 170, "isDefaultSelected": true, "isMultiselect":false, "isContainer":false },
{ "name":"Merlot", "description":"...", "price": 170, "isDefaultSelected": false, "isMultiselect":false ,"isContainer":false }
]
},
{ "name":"Fruit", "description":"Fruits...", "price": 0, "isDefaultSelected": false, "isMultiselect":false ,"isContainer":true, "children":[
{ "name":"Apple", "description":"...", "price": 170, "isDefaultSelected": true, "isMultiselect":false ,"isContainer":false },
{ "name":"Pear", "description":"...", "price": 170, "isDefaultSelected": false, "isMultiselect":false ,"isContainer":false }
]
}
]
}
Исходя из этого, клиент должен создать меню, в котором элементы со свойством isMultiselect являются флажками. Некоторые атрибуты, возможно, являются избыточными (isMultiselect может просто находиться в верхней части иерархии), но у нас есть требование, чтобы все элементы были идентичными.
Поэтому мой вопрос заключается в том, должен ли я создать новую модель для представления объектов, которые я хочу иметь в нашей службе REST, или могу ли я отобразить имеющиеся у меня объекты в соответствии с вышеуказанной схемой JSON.