2009-11-04 14 views
18

Hola estoy en busca de un marco REST Perl que tiene que:¿Qué estructura PERT RESTful recomienda?

  • trabajo bajo apache2/mod_perl2
  • ser simple
  • elegante
  • se haga la luz
  • ser flexible

¿Estoy soñando o puedo evitar el enfoque de "rodar por mi cuenta"?

¿Qué marco recomendaría?

Respuesta

7

Creo que usted encontrará que Squatting cumple todos los requisitos!

He escrito bastantes pequeñas aplicaciones RESTful con ella. Es ideal para esto y ha sido un placer trabajar con él.

Éstos son algunos enlaces más: "Hello World!"

Aquí es un simple ejemplo:

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}); 
     }, 
    ), 
); 
} 

Guardar anteriormente como Simple.pm en su lugar correspondiente y asegúrese de que la siguiente es en su configuración de Apache:

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

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

Y ya está!

Aunque aquí también podría dar una mención que pasa a un par de otros marcos que debe ajustarse a la ley:

digo "una mención pasajera" porque no he utilizado ninguno de estos y no estoy seguro de si alguno de los trabajos (de la caja) con mod_perl2. Aún con PSGI/Plack a la vuelta de la esquina esto no sería un problema durante demasiado tiempo ;-)

/I3az/

4

Catalyst es un framework MVC que se puede utilizar para hacer que los servicios Restfull

  • Se ejecuta bajo apache2/mod_perl2
  • Es simple y elegante, pero en mi humilde opinión no tanto como la mayor parte de la "nueva" MVC marcos
  • Sí ... es liviano.
  • no creo que es muy flexible .. :(..

EDIT: - Los "nuevos" marcos que he dicho son los que tienen buenos marcos de prueba a utilizar (como rieles/primavera/Seam, con catalizador no es fácil hacer pruebas además de las pruebas unitarias normales) y también muchos desarrolladores que trabajan para desarrollar aplicaciones para ellos (la comunidad alrededor de estos marcos es mucho más activa). Es por eso que no creo que Catalyst sea realmente flexible también.

+0

Thx. ¿Cuáles son los "nuevos" frameworks MVC a los que te refieres? – jeje

+0

edité el poThink que sería suficiente para explicar –

+8

Hay algo mal con su percepción de catalizador a continuación. Es probablemente el más flexible de todos los diversos frameworks web que existen. Y no estoy seguro de por qué crees que es difícil de probar. – singingfish

7

Mi framework de aplicaciones web Perl favorito es CGI::Application. es muy ligero (una sola clase base que se puede heredar de) y hace lo mínimo n necesario para manejar las tareas repetitivas de la programación de aplicaciones web y mantenerse fuera de su camino. Puede usarlo en un diseño MVC formal, o hacer las cosas más ad hoc si eso es lo que desea.

Tiene una arquitectura simple plugin, lo que le permite añadir fácilmente soporte para Template Toolkit (HTML::Template está soportado fuera de la caja) sessions, authentication, JSON, streaming, y así sucesivamente.

Finalmente, para crear URL amigables para REST, existe la excelente CGI::Application::Dispatch, que le brinda un potente motor basado en reglas para el despacho basado en URL.

Además, a pesar de su nombre, funciona sin problemas bajo mod_perl 1 y 2.

8

Otra a tener en cuenta sería Mojolicious que permite la escritura y las pruebas API REST de un modo muy sencillo .

17

He usado Dancer (github) para algunos proyectos más pequeños de la mía. Es muy elegante y muy fácil hacer las cosas rápidamente. Fue inspirado por el marco de Ruby Sinatra.

Es tan fácil como:

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

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

dance; 
10

bailarín está muy bien documentada y confiable si nos fijamos en el conjunto de pruebas: ~ 500 pruebas que cubren más del 80% de la estructura de directorios.

Es PSGI/Plack compatible y tiene pocas dependencias. La versión 1.0 debería ser lanzada muy pronto (tal vez este fin de semana).

Ver the dancer website de estar al día.

2

finalmente Rodé mi propia pura mod_perl2 API REST marco dedicado: http://code.google.com/p/apache2rest/

Nada es incorporado a excepción de lo esencial. El resto es extensible (o lo será). Tenía un vistazo a todas sus sugerencias, y todos parecen hacer frente a muchas cosas (gestión de DBI, ORM, motor de plantillas, servidor incorporado ...).

Es por eso que escribí éste. Espero que lo encuentres útil.

0

Lo siento por responder un poco tarde, pero he descrito un marco descansar en link text que ha funcionado bien para mí. Hace que agregar nuevos recursos sea muy simple; Apenas tengo que escribir más que la lógica comercial específica de los recursos; el marco se ocupa del resto.

Cuestiones relacionadas