Приветствую. Как какой? Не догоню, так согреюсь! Там полдюжины ссылок на prior work, и это я ещё забыл Catalyst и PSGI, на которые тоже смотрел в процессе.
А вот про OpenAPI хотелось бы подробнее, пока что нагуглил вот что: https://metacpan.org/pod/OpenAPI - какая-то ещё не написанная спецификация в версии 0.001 https://vk.com/dev/openapi - API вконтакта. А Вы что имели в виду? С уважением, 2016-12-02 16:45 GMT+02:00 Konstantin Cherednichenko < [email protected]>: > IMHO Лучше смотреть в сторону OpenAPI... Какой смысл изобретать велосипед > с роутами и валидацией данных? > > On Dec 2, 2016 16:40, "Konstantin S. Uvarin" <[email protected]> wrote: > >> Приветствую всех! >> >> Сегодня я бы хотел представить веб-фреймворк на перл 5 собственного >> сочинения, Ниф (Not Even A Framework). Написан он больше для >> самообразования, т.к. и так их как собак нерезаных, но мне кажется, в нём >> есть некие здравые идеи. Суть такова: >> >> 1. Приложение разбивается на маленькие процедуры-хэндлеры, привязанные к >> пути в URI (см. тж. https://metacpan.org/pod/Dancer ) >> >> 2. Хэндлер получает на вход объект запроса, из которого потом достаются >> параметры, куки, заголовки и т.д. (см. тж. https://metacpan.org/pod/Kelp >> ) >> >> 3. Параметры и куки нельзя достать без валидации, например, при помощи >> регулярного выражения: >> >> $req->param( foo => qr/\d+/ ); >> >> См. тж. perl -T >> >> В качестве альтернативы есть самовалидирующиеся формы на базе >> Validator::LIVR или самописного каличного движка (но ЛИВР лучше). >> >> См. тж. https://metacpan.org/pod/Validator::LIVR и >> https://metacpan.org/pod/Data::CGIForm >> >> 4. Хэндлер может вернуть ссылку на хэш с какими угодно параметрами, >> которая затем передаётся в шаблонизатор для рендеринга. На данный момент >> поддерживается Template::Toolkit и JSON/JSONP >> >> Также есть ограниченный набор ключей с минусом, которые используются для >> управления самим фреймворком - -template, -status и т.п >> >> 5. Хэндлер может выбросить исключение: die 404 - легальный способ вернуть >> настраиваемую страницу not found. Все нормальные исключения (не >> трёхцифренные и не специальные объекты самого Neaf) трактуются как error >> 500. >> >> 6. Один и тот же код может в неизменном виде запускаться как cgi, psgi и >> под Apache2 + mod_perl (с некоторым бубном). Также поддерживается дебаг из >> командной строки: >> >> perl myapp.pl --help >> perl myapp.pl --list >> >> 7. Кроме этого есть поддержка статических страниц (не надо держать >> отдельно нормальный веб-сервер, чтобы проверить CSS или логотип), сессий в >> несколько недоделанном виде (планируется улучшение), отложенные действия, >> выполняемые после запроса, ну и по мелочи ещё. >> >> Пример кода: >> >> use strict; >> use warnings; >> use MVC::Neaf; >> >> MVC::Neaf->route( "/" => sub { >> my $req = shift; >> >> return { >> -template => \'Hello, [% name %]!', >> -type => 'text/plain', >> name => $req->param( name => qr/\w+/, "Stranger" ), >> }, >> }); >> >> На каждую фичу есть небольшой пример, они же используются как >> дополнительные смоук-тесты к 80% покрытию юнит-тестами. см. >> https://github.com/dallaylaen/perl-mvc-neaf/tree/master/example >> >> Собственно фреймворк: >> >> https://metacpan.org/pod/MVC::Neaf >> >> Буду рад обратной связи, критике, багрепортам и запросам новых фич (см. >> тж. https://github.com/dallaylaen/perl-mvc-neaf/blob/master/TODO ) >> >> С уважением, >> >> -- >> Konstantin S. Uvarin >> jabber: see <from> >> skype: kuvarin >> http://github.com/dallaylaen >> >> _______________________________________________ >> Kiev-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/kiev-pm >> >> > _______________________________________________ > Kiev-pm mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/kiev-pm > > -- Konstantin S. Uvarin jabber: see <from> skype: kuvarin http://github.com/dallaylaen
_______________________________________________ Kiev-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/kiev-pm
