Estamos pensando en mover nuestro Rest API Server (está dentro del servicio web, en Symfony PHP) a Scala por varias razones: velocidad, sin gastos generales, menos CPU, menos código, escalabilidad, etc. No conocía Scala hasta varios Hace días, pero he disfrutado de lo que he estado aprendiendo estos días con el libro Scala y todas las publicaciones y preguntas del blog (¡no es tan feo!)
Tengo las siguientes opciones:
- construir el servidor de API Rest desde cero
- use un pequeño marco web Scala como Scalatra
- usar ascensor
Algunas cosas que tendré que usar: solicitudes HTTP, salida JSON, MySQL (datos), OAuth, Memcache (caché), registros, cargas de archivos, estadísticas (tal vez Redis).
¿Qué recomendarías?
Voy a recomendar Unfiltered . Es un framework web idiomático que hace las cosas "a la manera de Scala" y es muy hermoso.
fuente
Eche un vistazo a Xitrum (soy su autor), proporciona todo lo que enumeró. Su doc es bastante extenso. De README:
Xitrum es un servidor web y marco web Scala asincrónico y agrupado sobre Netty y Hazelcast:
fuente
Agregaría dos opciones más: akka con soporte JAX-RS incorporado, y simplemente usando JAX-RS directamente (probablemente la implementación de Jersey). Aunque podría decirse que es menos "Scala-y" que otros (confiando en anotaciones para unir parámetros y rutas), JAX-RS es un placer de usar, resolviendo limpiamente todos los problemas de codificación de servicios web con una huella mínima. No lo he usado a través de akka, anticiparía que sería excelente allí, obteniendo una escalabilidad impresionante a través de su implementación basada en la continuación.
fuente
Eche un vistazo a Finch , una biblioteca de combinador de Scala para crear servicios HTTP de Finagle . Finch le permite construir puntos finales HTTP complejos a partir del número de bloques básicos predefinidos. De manera similar a los combinadores de analizadores sintácticos, los puntos finales de Finch son fáciles de reutilizar, componer, probar y razonar.
fuente
Todas las buenas respuestas hasta ahora. Un punto a favor de Lift es su RestHelper , que puede facilitar la escritura de métodos de API cortos y elegantes. Además, todas las demás cosas que desea hacer deben ser bastante sencillas de implementar en Lift. Dicho esto, Memcache podría no ser necesario.
fuente
Un poco tarde en la escena, pero definitivamente recomendaría usar el marco Bowler para la creación de API REST. ¡Es pequeño, directo y compatible con la conversión automática de clases de casos!
fuente