Mercurial > pub > Impl
view Lib/IMPL/Web/Application/ResourceInterface.pm @ 245:7c517134c42f
Added Unsupported media type Web exception
corrected resourceLocation setting in the resource
Implemented localizable resources for text messages
fixed TT view scopings, INIT block in controls now sets globals correctly.
author | sergey |
---|---|
date | Mon, 29 Oct 2012 03:15:22 +0400 |
parents | 6d8092d8ce1b |
children | a8dbddf491dd |
line wrap: on
line source
package IMPL::Web::Application::ResourceInterface; use strict; use IMPL::require { Exception => 'IMPL::Exception', NotImplException => '-IMPL::NotImplementedException' }; sub InvokeHttpVerb { die NotImplException->new(); } sub FetchChildResource { die NotImplementedException->new(); } 1; __END__ =pod =head1 NAME C<IMPL::Web::Application::ResourceInterface> - Интерфейс для Web-ресурса. =head1 SYNOPSIS =begin code package MyApp::Web::Resource; use IMPL::Const qw(:prop); use IMPL::declare { require => { NotAllowedException => 'IMPL::Web::NotAllowedException' }, base => [ 'IMPL::Object' => undef, 'IMPL::Web::Application::ResourceInterface' => undef ], props => [ model => PROP_ALL ] }; sub InvokeHttpVerb { my ($this,$verb,$action) = @_; if($verb eq 'GET') { return $this->model; } else { die NotAllowedException->new(allow => 'GET'); } } sub FetchChildResource { # no child resources return; } =end code =head1 DESCRIPTION Данный модуль объявляет только интерфейс, тоесть в нем есть заглушки для функций которые необходимо реализовать. Для создания класса, который может быть использоваться для создания Web-ресурсов нужно унаследовать данный интерфейс и реализовать его методы. =head1 MEMBERS =head2 C<InvokeHttpVerb($verb,$action)> Выполняет операцию над ресурсом и возвращает результат ее выполнения. Результатом может быть произвольный объект, который будет передан по цепочке обработчиков приложения для формирования ответа вервера, либо C<IMPL::Web::HttpResponse>, который описывает (не обязательно полностью) ответ. В любом случае результат будет передан далее в цепочку обработчиков и может быть изменен. =head2 C<FetchChildResource($childId)> Используется для получения дочернего ресурса (который содержится в данном контейнере). Метод должен возвращать либо Web-ресурс C<IMPL::Web::Application::ResourceInterface>, либо C<undef> если дочерний ресурс не найден. =cut