LINUX.ORG.RU

Perl Dancer структура приложения

 


0

1

Perl, Dancer2, PostgreSQL, jQuery.
В файлах *.pm создан роутинг CRUD для методов (post, get, put, delete).
Поделил по файлам с использованием prefix.

Для table1:
get - возвращает template;
post, put, delete - принимает JSON.

Table1 имеет связанные поля table1.table2_id.
При выводе шаблона нужны значения table2.name (вместо table1.table_id).
Таких полей может быть большое кол-во!

Варианты вывода шаблона и получения table2.name:
* get /table1 и через AJAX сделать get-запрос /table2/:id

* создавать классы на каждую таблицу для внутреннего получения значений
и затем создавать шаблон. Что и делал на mod_perl.

* существует ли возможность внутренней обработки JSON (имитация get /table2:id)?
Чтобы не описывать дважды класс и JSON.

★★

Последнее исправление: WinLin2 (всего исправлений: 1)

Передаю пламенный привет CRUD'у, МВЦ и вообще ООП, ибо любое отклонение от схемы - 1 таблица == 1 модель порождает попоболь. Либо обход попоболи уже реализован костылями внутри моделей, где можно указать связанные таблицы и рассматривать их как одно.

Шо там, не закостылено?

deep-purple ★★★★★
()
Ответ на: комментарий от WinLin2

Ну посмотри доки по своей теме, там должно быть закостылено, ибо ну не идиоты же все эти обертки писали, да, модель должна уметь достать из другой таблицы.

deep-purple ★★★★★
()

Как насчет кодогенератора, который по JSON модели будет создавать классы для JS и Perl?

Можно конечно и по таблицам MySQL генерировать классы для JS и Perl. для этого есть инструменты, но возни с ними будет много:

http://search.cpan.org/~ilmari/DBIx-Class-Schema-Loader-0.07042/lib/DBIx/Clas...

https://github.com/sequelize/sequelize-auto

troekrestie
()
Ответ на: комментарий от troekrestie

Поддерживаю Вашу мысль, нужна ORM или классы доступа к SQL.

Во всех руководствах структура программы:
get /:id => sub {
sql-запрос
to_json или template
}

Одним sql-запросом не обойтись, он будет в разных вариантах
встречаться по тексту.

WinLin2 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.