object MinimalApplication extends cask. MainRoutes {
@ cask.get( " / " )
def hello () = {
" Hello World! "
}
@ cask.post( " /do-thing " )
def doThing ( request : cask. Request ) = {
request.text().reverse
}
initialize()
}O Cask é uma estrutura da Web Scala simples inspirada no projeto Flask do Python. Ele pretende trazer simplicidade, flexibilidade e facilidade de uso para os servidores da Web Scala, evitando DSLs enigmáticos ou assincronia complicada. Cask facilita a configuração de um site, servidor de back -end ou API REST usando Scala
Se você usa barril e gosta, provavelmente apreciará o seguinte livro do autor:
O Scala prático usa solicitações-escala extensivamente ao longo do livro e possui a totalidade do capítulo 14: servidores simples da Web e API dedicados à biblioteca. O Scala-On Scala é uma ótima maneira de aumentar suas habilidades em Scala em geral e em particular.
O barril é perfilado usando o JProfiler Java Profiler, cortesia da EJ Technologies
@postJsonCached para permitir referência à carga útil original do corpo em @postJson #123Decodifique corretamente os parâmetros da URL quando passados como segmentos de caminho ou parâmetros de consulta #114
Preserve a barra principal ao resolver os caminhos estáticos #111
Adicione cask.QueryParams Tipo para permitir que os métodos de rota tomem parâmetros de consulta arbitrários, adicione cask.RemainingPathSegments subpath = true
org.xerial:sqlite-jdbc em exemplos da versão 3.41.2.1 para@staticResources e @staticFiles Decoradores agora inferem automaticamente tipos de conteúdo com base na extensão de arquivo@cask.options decoradoractorContext passar explicitamente para todas as rotas da classe de casogeny.Writable#httpContentType e geny.Writable#contentLengthdelete e patchSameSitecask-actor em seu próprio repo e artefato, https://github.com/lihaoyi/castorcask-actor em um artefato separado, documentado separadamente como atores de barrilTipos de decoradores incompatíveis aplicados a um único método agora é um erro de compilação
staticFiles e staticResources agora permite especificar cabeçalhos de resposta
Permitir cask.decorators.compress sejam usados como um cask.Routes cask.Main
Permitir que os decoradores sejam definidos e usados para resultados que não sejam cask.Response .
cask.WebsocketClientImplcask.WsClientRoutes#log implícitocask.util Cross-Publish para Scala.jsconcurrent.ExecutionContext.global em cask.Routes .cask.Logger básico.cask.WsActor API simples baseada em ator para cask.WsHandlercask.Response agora é covariável./mill bootstrap