2013-11-24 42 views
1

想要做一個Perl模塊什麼基本上是:Perl模塊,不同網絡的框架可用

  • 從網絡中請求一些PARAMS
  • 做一些內部邏輯
  • 併產生一個JSON字符串

我的問題是:這裏是許多不同的方法處理web請求(查詢字符串解碼),象(兩個值得注意的是:)

  • CGI $query->{‘somearg’}或類似
  • 普拉克(普拉克::請求)
  • 而且很可能還有的...(web框架等...)

我應該怎麼寫的模塊,爲可用與不同的前端?

關於類似的思考:

pakage MyJSONProducer::Plack; # for Plack based apps 
use MyJSONProducer;   # My module 
my $prod = MyJSONProducer->new(); 
my $args = decode_plack_request_args($env); #make a hashref from args... 
my $json = $prod->run($args); # call with args… 


package MyJSONProducer::CGI; # for CGI based ones 
use MyJSONProducer; 
my $prod = MyJSONProducer->new(); 
my $args = decode_cgi_args($query); #make a hashref from args... 
my $json = $prod->run($args); # call with args... 

等等...

但有些我覺得這不是一個很好的解決方案......

這裏是一些recommented方式如何處理這種情況?任何CPAN模塊我應該學習什麼?

回答

2

只需編寫MyJSONProducer :: Plack。然後,如果你想在CGI環境中部署你的應用,你可以使用類似Plack::Handler::CGI的東西。

這是Plack和PSGI的觀點。如果您將代碼寫入PSGI規範,那麼您可以將其部署到任何地方。

1

你可以做的事情不多。不過,你可以讓它更加用戶友好。

說你的模塊叫做Kobame。然後,您將創建一個加幾個othermodules命名爲:

  • Kobame:CGI
  • Kobame:普拉克
  • ...

每個將處理的細節入門和意志然後發出你的核心Kobame模塊。 Kobame模塊必須採用通用的perl數據結構,不應該引用任何web模塊。