object MinimalApplication extends cask. MainRoutes {
@ cask.get( " / " )
def hello () = {
" Hello World! "
}
@ cask.post( " /do-thing " )
def doThing ( request : cask. Request ) = {
request.text().reverse
}
initialize()
}Cask es un marco web simple Scala inspirado en el proyecto Flask de Python. Su objetivo es aportar simplicidad, flexibilidad y facilidad de uso a los servidores web de Scala, evitando DSL crípticos o asincronía complicada. Cask facilita la configuración de un sitio web, servidor de backend o API REST usando Scala
Si usa un barril y le gusta, probablemente disfrutará del siguiente libro del autor:
Hands-On Scala ha usado Solicitudes-Escala ampliamente en todo el libro, y tiene la totalidad del Capítulo 14: servidores simples web y API dedicados a la biblioteca. La práctica Scala es una excelente manera de nivelar sus habilidades en Scala en general y barril en particular.
Cask se perfila utilizando el Java Profiler JProfiler, cortesía de EJ Technologies
@postJsonCached para permitir la referencia a la carga útil del cuerpo original en @postJson #123Decode correctamente los parámetros de URL cuando se pasan como segmentos de ruta o parámetros de consulta #114
Preservar la barra de liderazgo al resolver las rutas estáticas #111
Agregue cask.QueryParams Tipo para permitir que los métodos de ruta tomen parámetros de consulta arbitraria, agregue cask.RemainingPathSegments como reemplazo para subpath = true #108 #109 #110
org.xerial:sqlite-jdbc en ejemplos a la versión 3.41.2.1 a@staticResources y @staticFiles Decorators ahora inferen automáticamente los tipos de contenido en función de la extensión del archivo@cask.options decoradoractorContext de Cank se pase explícitamente en cada clase de casos de rutasgeny.Writable#httpContentType y geny.Writable#contentLengthdelete y patchSameSitecask-actor en su propio repositorio y artefacto, https://github.com/lihaoyi/castorcask-actor APARADO en un artefacto separado, documentado por separado como actores de barrilLos tipos de decoradores no coincidentes aplicados a un solo método son ahora un error de compilación
staticFiles y staticResources ahora le permiten especificar encabezados de respuesta
Permitir que cask.decorators.compress se use como cask.Routes o cask.Main Decorator sin chocar las respuestas de WebSocket
Permitir que los decoradores se definan y usen para los resultados de la respuesta sin cask.Response
cask.WebsocketClientImplcask.WsClientRoutes#log implícitocask.util para Scala.jsconcurrent.ExecutionContext.global en cask.Routes de forma predeterminada, para ser anulada si es necesariocask.Loggercask.WsHandler y cask.WsActorcask.Response ahora es covariante./mill bootstrap