perl rest apache2 mod-perl2

¿Qué marco de RESTful de Perl recomienda?



apache2 mod-perl2 (8)

Hola, estoy buscando un marco Perl RESTful que tenga que:

  • trabajar bajo apache2 / mod_perl2
  • ser simple
  • gallardear
  • Sé ligero
  • se Flexible

¿Solo estoy soñando o puedo evitar el enfoque ''Rollar nuestro propio''?

¿Qué marco recomendarías?


Dancer está bastante bien documentado y es confiable si observa el conjunto de pruebas: ~ 500 pruebas que cubren más del 80% del árbol de origen.

Es compatible con PSGI / Plack y tiene pocas dependencias. La versión 1.0 se lanzará muy pronto (quizás este fin de semana).

Ver Dancer para estar atento.


Finalmente puse en marcha mi propio marco dedicado a la API RESTful pura mod_perl2: http://code.google.com/p/apache2rest/

Nada está incorporado excepto lo esencial. El resto es extensible (o lo será). Eché un vistazo a todas sus sugerencias, y todas parecen abordar demasiadas cosas (gestión DBI, ORM, motor de plantillas, servidor incorporado ...).

Es por eso que escribí este. Espero que te sea de utilidad.


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

Es tan fácil como:

#!/usr/bin/env perl use Dancer; get ''/'' => sub { ''Hello world!'' }; dance;


Lamento haber contestado un poco tarde, pero describí un marco de REST en un texto de enlace que me ha funcionado bien. Hace que agregar nuevos recursos sea muy simple; Apenas tengo que escribir más que la lógica de negocios específica de recursos; El marco se encarga del resto.


Mi marco de aplicación web Perl favorito es CGI::Application . Es muy liviano (una clase base única de la que puedes heredar) y hace lo mínimo necesario para manejar las tareas repetitivas de la programación de la aplicación web y, de lo contrario, permanecer fuera de tu camino. Puede usarlo en un diseño MVC formal, o hacer cosas más ad hoc si eso es lo que quiere.

Tiene una arquitectura sencilla de plugin , que le permite agregar fácilmente soporte para Template Toolkit ( HTML::Template es compatible de forma inmediata), sessions , authentication , JSON , streaming , etc.

Finalmente, para crear URLs amigables a REST, está el excelente CGI::Application::Dispatch , que le brinda un potente motor basado en reglas para el envío basado en URL.

Además, a pesar de su nombre, funciona perfectamente en mod_perl 1 y 2.


Otro a considerar sería Mojolicious, que permite escribir y probar las API RESTful de una manera muy sencilla.


¡Creo que encontrarás que Squatting cumple todos esos requisitos!

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

Aquí hay algunos enlaces más:

Aquí hay un simple "hola mundo!" 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} ); }, ), ); }

Guarde arriba como Simple.pm en el lugar correspondiente y asegúrese de que lo siguiente esté en su configuración de Apache:

<Perl> use Simple ''On::MP20''; Simple->init </Perl> <Location /> SetHandler perl-script PerlHandler Simple->mp20 </Location>

¡Y ya te vas!

Si bien aquí también daría una mención pasajera a un par de otros marcos que deberían ajustarse a la ley:

Digo "mención pasajera" porque no he usado ninguno de estos y no estoy seguro de si alguno funciona (fuera de la caja) con mod_perl2. Aún con PSGI / Plack a la vuelta de la esquina, esto no sería un problema por mucho tiempo ;-)

/ I3az /


Catalyst es un marco MVC que puede utilizar para hacer servicios Restfull

  • Se ejecuta bajo apache2 / mod_perl2
  • Es simple y elegante pero, en mi opinión, no tanto como la mayoría de los "nuevos" marcos MVC
  • Sí ... es luz.
  • No creo que sea realmente flexible .. :( ..

EDITAR: - Los "nuevos" marcos que dije son los que tienen buenos marcos de prueba para usar (como rieles / resorte / costura, con catalizador no es fácil hacer pruebas además de las pruebas de unidad normales) y también muchos desarrolladores que trabajan para crear aplicaciones para ellos (la comunidad en torno a estos marcos son mucho más activas). Por eso no creo que Catalyst sea realmente flexible también.