cask
0.10.2
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是一个由Python's Flask Project启发的简单Scala Web框架。它旨在为Scala Web服务器带来简单,灵活性和易用性,避免使用隐秘的DSL或复杂的异步。 CASK可以轻松使用Scala设置网站,后端服务器或REST API
如果您使用木桶并喜欢它,您可能会喜欢作者的以下书:
动手Scala在整本书中广泛使用了scala,并且拥有第14章的全部:简单的Web和API服务器,专用于库。动手Scala是提高您在Scala的技能,尤其是cask的好方法。
CASK使用JPOROFILER JAVA PROFILER进行了介绍,由EJ Technologies提供
@postJsonCached ,允许引用@postJson中的原始身体有效载荷#123当以路径段或查询参数传递时,正确解码URL参数#114
解决静态路径#111时保持领先斜线
添加cask.QueryParams类型以允许路由方法采用任意查询参数,添加cask.RemainingPathSegments作为subpath = true #108#109#110
org.xerial:sqlite-jdbc库3.41.2.1 to@staticResources和@staticFiles装饰器现在根据文件扩展自动推断内容类型@cask.options装饰器actorContext明确传递到每个路线案例类geny.Writable#httpContentType and geny.Writable#contentLengthdelete和patch添加端点SameSite cookie属性cask-actor提取到自己的仓库和文物中,https://github.com/lihaoyi/castorcask-actor分别为单独的人工制品,单独记录为木桶演员现在应用于单个方法的不匹配的装饰器类型现在是一个编译错误
现在, staticFiles和staticResources允许您指定响应标题
允许cask.decorators.compress press用作cask.Routes或cask.Main 。
允许将装饰器定义并用于非cask.Response响应结果
cask.WebsocketClientImpl中的崩溃cask.WsClient中提供一个简单的跨平台内置网络网络客户端Routes#log隐式cask.utilconcurrent.ExecutionContext.global cask.Routes默认情况下,如有必要cask.Logger 。cask.WsHandler和cask.WsActor中的Webocketscask.Response现在是协变量的./mill bootstrap脚本