2012-01-31 6 views
5

के साथ एक वेब सेवा बनाना मुझे प्रस्तावों के परीक्षण के लिए सर्वर-साइड एप्लिकेशन (छोटी वेब सेवा) बनाने की आवश्यकता है। ऐसे कार्य को लागू करने के लिए कुछ CPAN मॉड्यूल और पर्ल पुस्तकालय क्या हैं?पर्ल

+0

आपको अपने लक्ष्यों के बारे में कुछ और विशिष्ट होना चाहिए। ऐप को क्या करने में सक्षम होना चाहिए? – dgw

उत्तर

4

संभावनाओं

  • CGI का एक बहुत हैं - अगर आप पुराने दिनों में की तरह सब कुछ करना चाहते
  • CGI::Application - एक छोटे से अधिक उन्नत

या आप कर सकते थे

    जैसे ढांचे का उपयोग करें
  • Catalyst
  • Dancer
  • Mojolicious

यह अपने कौशल पर निर्भर करता है और करना है कि तुम क्या समाधान का चयन करना चाहिए।

2

मुझे mojolicious का उपयोग करना पसंद है। यह पहले हल्का वजन है और बाद में भारी उठाना भी कर सकता है। विशेष रूप से Mojolicious::Lite त्वरित और गंदे के लिए अच्छा है।

use Mojolicious::Lite; 

    # Route with placeholder 
    get '/:foo' => sub { 
    my $self = shift; 
    my $foo = $self->param('foo'); 
    $self->render(text => "Hello from $foo."); 
    }; 

    # Start the Mojolicious command system 
    app->start; 
4

Plack::Test साथ एक छोटे से वेब सेवा का परीक्षण:

use Plack::Test; 
use Test::More; 
test_psgi(
    app => sub { 
     my ($env) = @_; 
     return [200, ['Content-Type' => 'text/plain'], ["Hello World"]], 
    }, 
    client => sub { 
     my ($cb) = @_; 
     my $req = HTTP::Request->new(GET => "http://localhost/hello"); 
     my $res = $cb->($req); 
     like $res->content, qr/Hello World/; 
    }, 
); 
done_testing; 
5

एक वेब सेवा के लिए बस एक HTTP स्थिति कोड और कुछ डेटा, शायद JSON या XML में धारावाहिक देता है। ऐसा करने के लिए आप CGI मॉड्यूल का उपयोग कर सकते हैं, उदा।:

#!/usr/bin/perl -w 

use strict; 
use warnings; 
use CGI; 
use CGI::Pretty qw/:standard/; 
use URI::Escape; 

my $query = CGI->new; 
my $jsonQueryValue = uri_unescape $query->param('helloWorld'); 

# let's say that 'helloWorld' is a uri_escape()-ed POST variable 
# that contains the JSON object { 'hello' : 'world' } 

print header(-type => "application/json", -status => "200 OK"); 
print "$jsonQueryValue"; 

आप, ज़ाहिर है, अन्य स्थिति कोड और डेटा के साथ एक HTTP प्रतिक्रिया मुद्रित कर सकते हैं। एक वेब सेवा को 404 त्रुटि वापस करने की आवश्यकता हो सकती है, उदाहरण के लिए, इसके लिए क्या पूछा जा रहा है इसके आधार पर। इस तरह की चीज।