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 - это простая веб -структура Scala, вдохновленная проектом Python's Flask. Он направлен на то, чтобы принести простоту, гибкость и простоту использования Scala Webservers, избегая загадочных DSL или сложной асинхронности. Cask позволяет легко настроить веб -сайт, бэкэнд -сервер или API REST с помощью Scala
Если вы используете бочку и понравится, вам, вероятно, понравится следующая книга автора:
Практическая Scala широко использует Screads Scala на протяжении всей книги и имеет всю главу 14: Простые серверы Web и API, посвященные библиотеке. Практическая Scala -отличный способ повысить ваши навыки в Scala в целом и в частности.
Cask представлен с использованием jprofiler 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@staticResources и @staticFiles Декораторы теперь автоматически выводят типы контента на основе расширения файлов@cask.options DecoratoractorContext явно переданный в каждый класс дел маршрутовgeny.Writable#httpContentType и geny.Writable#contentLengthdelete и patchSameSitecask-actor в свой собственный репо и артефакт, https://github.com/lihaoyi/castororcask-actor в отдельный артефакт, задокументированный отдельно как бочки актеровНесоответствующие типы декораторов, примененные к одному методу, теперь являются ошибкой компиляции
staticFiles и staticResources теперь позволяют указать заголовки ответов
Разрешить cask.decorators.compress использоваться в качестве cask.Routes или cask.Main decorator, не сбиваясь с ответами на веб -сокет
Позвольте определить и использовать декораторы для результатов cask.Response
cask.WebsocketClientImplcask.WsClientRoutes#log неявнымcask.util для Scala.jsconcurrent.ExecutionContext.global в cask.Routes по умолчанию, чтобы быть переопределенным, если это необходимо, при необходимостиcask.Loggercask.WsHandler и cask.WsActorcask.Response теперь ковариант./mill Bootstrap Script