2009-11-04 19 views
18

Ciao Sto cercando un quadro RESTful Perl che devono:Che struttura Perl RESTful raccomandi?

  • lavoro sotto apache2/mod_perl2
  • essere semplice
  • essere elegante
  • E luce sia
  • essere flessibile

Sto solo sognando o posso evitare l'approccio 'Roll our own'?

Quale struttura raccomanderesti?

risposta

7

Penso che troverete che Squatting zecche tutte quelle scatole!

Ho scritto parecchie piccole applicazioni RESTful con esso. È ideale per questo ed è stato un piacere lavorare con.

Qui ci sono alcuni più links: "Ciao mondo"

Ecco una semplice Esempio:

use strict; 
use warnings; 

{ 
    package Simple; 
    use base 'Squatting'; 
} 

{ 
    package Simple::Controllers; 
    use Squatting ':controllers'; 

    our @C = (
    C(
     Index => [ '/' ], 
     get => sub { 
     my ($self) = @_; 
     my $v = $self->v; 
     $v->{hello} = 'Hello World!'; 
     $self->render('hello'); 
     }, 
    ), 
); 
} 

{ 
    package Simple::Views; 
    use Squatting ':views'; 
    use HTML::AsSubs; 

    our @V = (
    V( 'html', 

     layout => sub { 
     my ($self, $v, @yield) = @_; 
     html(
      head(title('Simple web app')), 
      body(@yield), 
     )->as_HTML; 
     }, 

     hello => sub { 
     my ($self, $v) = @_; 
     p($v->{hello}); 
     }, 
    ), 
); 
} 

Salva sopra come Simple.pm in luogo di riferimento e assicurarsi che la segue è nella configurazione di Apache:

<Perl> 
    use Simple 'On::MP20'; 
    Simple->init 
</Perl> 

<Location /> 
    SetHandler perl-script 
    PerlHandler Simple->mp20 
</Location> 

e si va via!

Mentre qui Vorrei anche dare una menzione di passaggio a un paio di altri framework che dovrebbe andare bene il conto:

dico "passando menzione" perché non ho usato nessuno di questi e non sono sicuro che entrambi funzionino (out of the box) con mod_perl2. Sempre con PSGI/Plack proprio dietro l'angolo questo non sarebbe un problema per troppo tempo ;-)

/I3az/

4

Catalyst è un framework MVC che è possibile utilizzare per rendere i servizi Restfull

  • Funziona sotto apache2/mod_perl2
  • E 'semplice ed elegante, ma secondo me non tanto quanto la maggior parte della "nuova" MVC quadri
  • Sì .. è leggero.
  • Non penso che sia molto flessibile .. :(..

EDIT: - I "nuovi" quadri ho detto sono quelle che hanno buone strutture di prova da utilizzare (come binari/primavera/Seam, con catalyst non è facile fare test oltre ai normali test unitari) e anche molti sviluppatori che lavorano per creare applicazioni (la community attorno a questi framework è molto più attiva). Ecco perché non penso che Catalyst sia davvero flessibile.

+0

Thx. Quali sono i "nuovi" quadri MVC a cui ti stai riferendo? – jeje

+0

Ho modificato il poTink che sarebbe sufficiente per spiegare –

+8

C'è qualcosa di sbagliato nella tua percezione di Catalyst allora. È probabilmente il più flessibile di tutti i vari framework web disponibili. E non sono sicuro del motivo per cui pensi sia difficile da testare. – singingfish

7

Il mio framework di applicazione web Perl preferito è CGI::Application. È molto leggero (una singola classe base da cui si può ereditare) e fa il minimo n È utile per gestire i compiti ripetitivi della programmazione di app Web e, in caso contrario, evitare di intralciare. Puoi usarlo in un design MVC formale o fare altre cose ad hoc se è quello che vuoi.

Ha una semplice plugin architettura, che consente di aggiungere facilmente il supporto per Template Toolkit (HTML::Template è supportato out of the box) sessions, authentication, JSON, streaming, e così via.

Infine, per la creazione di URL amichevoli simili a REST, vi è l'eccellente CGI::Application::Dispatch, che offre un potente motore basato su regole per l'invio basato su URL.

Inoltre, nonostante il nome, funziona perfettamente sotto mod_perl 1 e 2.

8

altro da considerare sarebbe Mojolicious che permette sia la scrittura e testare le API RESTful in un modo molto semplice .

17

Ho usato Dancer (github) per alcuni miei progetti più piccoli. È molto elegante e molto facile da portare a termine rapidamente. È stato ispirato dalla struttura Ruby Sinatra.

E 'facile come:

#!/usr/bin/env perl 
use Dancer; 

get '/' => sub { 
    'Hello world!' 
}; 

dance; 
10

ballerino è piuttosto ben documentato e affidabile, se si guarda la suite di test: ~ 500 test che coprono oltre l'80% dell'albero dei sorgenti.

È conforme a PSGI/Plack e presenta poche dipendenze. La versione 1.0 dovrebbe essere rilasciata molto presto (forse questo fine settimana).

Vedere the dancer website rimanere sintonizzati.

2

finalmente ho arrotolato la mia pura mod_perl2 API RESTful quadro dedicato: http://code.google.com/p/apache2rest/

Nulla è built-in, tranne l'essenziale. Il resto è estensibile (o lo sarà). Ho dato un'occhiata a tutti i tuoi suggerimenti, e sembrano tutti indirizzare troppe cose (gestione DBI, ORM, template engine, server embedded ...).

Ecco perché ho scritto questo. Spero lo troverai utile

0

Mi dispiace rispondere un po 'tardi, ma ho descritto un framework REST in link text che ha funzionato bene per me. Rende l'aggiunta di nuove risorse molto semplice; Devo a malapena scrivere più della logica aziendale specifica della risorsa; la struttura si prende cura di tutto il resto.