CGI:: Приложение:: Плагин:: Экземпляр REST
Я пытаюсь создать службу Restful с помощью CGI::Application:: Plugin:: REST, но я не уверен, как на самом деле структурировать скрипт. Это то же самое, что и использование CGI::Application, поэтому ниже будут ссылки на скрипты экземпляра, ссылающиеся на модули в пути к библиотеке Perl?
use CGI::Application::Plugin::REST qw( :all );
$self->rest_route(
'/Stage/:id' => {
'GET' => 'Stage',
},
'/Status/:id' => {
'GET' => 'Status',
},
'/Metadate/:id' => {
'GET' => 'Metadata',
},
$self->run();
Я признаю, что я, вероятно, изучаю CGI::Application в обратном направлении, и ищу легкий выход, так как после того, как фреймворк сделан, все остальное очень достижимо. Также я не хотел использовать фреймворки MVC, так как хотел построить его с нуля. Спасибо за помощь заранее.
1 ответ
Поскольку вы сказали, что хотите использовать это как структуру для построения, я бы рекомендовал поместить вашу логику CGI::App в ее собственный модуль. Это облегчит тестирование позже, когда вы начнете писать тесты. Ваш App.pm будет выглядеть как обычный контроллер CGI::App:
package App;
use strict;
use parent 'CGI::Application';
use CGI::Application::Plugin::REST ':all';
sub setup {
my $self = shift;
$self->rest_route(
'/some/route' => {
'GET' => 'read_widget',
'POST' => 'save_widget',
},
);
}
sub read_widget { ... }
sub save_widget { ... }
1;
И тогда в вашем экземпляре сценария, который будет вызывать веб-сервер, вы можете просто use App; App->new->run;
Вы можете найти полностью функционирующий пример в тестовой библиотеке C::A::P::REST.