Пример: Mojolicious::Plugin::OpenAPI Или уже готовая реализация Raisin
Все смотреть на metacpan... On Dec 2, 2016 16:54, "Konstantin S. Uvarin" <[email protected]> wrote: > Приветствую. > > Как какой? Не догоню, так согреюсь! Там полдюжины ссылок на 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 > >
_______________________________________________ Kiev-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/kiev-pm
