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 est un simple framework Web Scala inspiré du projet Flask de Python. Il vise à apporter la simplicité, la flexibilité et la facilité d'utilisation aux serveurs de sites Web Scala, en évitant les DSL cryptiques ou l'asynchronie compliquée. Cask facilite la configuration d'un site Web, d'un serveur backend ou d'une API REST à l'aide de Scala
Si vous utilisez Cask et l'aimez, vous apprécierez probablement le livre suivant de l'auteur:
Scala pratique utilise largement les demandes-Scala tout au long du livre, et a l'intégralité du chapitre 14: des serveurs Web et API simples dédiés à la bibliothèque. Scala pratique est un excellent moyen d'améliorer vos compétences à Scala en général et en fût en particulier.
Cask est profilé à l'aide du Java Profiler JProfiler, gracieuseté d'EJ Technologies
@postJsonCached pour permettre une référence à la charge utile du corps d'origine dans @postJson # 123Décoder correctement les paramètres d'URL lorsqu'ils sont passés sous forme de segments de chemin ou de paramètres de requête # 114
Préserver la barre de tête lors de la résolution des chemins statiques # 111
Ajouter le type cask.QueryParams pour permettre aux méthodes d'itinéraire de prendre des paramètres de requête arbitraires, ajoutez cask.RemainingPathSegments en remplacement de subpath = true # 108 # 109 # 110
org.xerial:sqlite-jdbc dans les exemples de la version 3.41.2.1@staticResources et @staticFiles Decorators déduisent désormais automatiquement les types de contenu en fonction de l'extension de fichier@cask.options décorateuractorContext transmis explicitement dans chaque classe de cas de routesgeny.Writable#httpContentType et geny.Writable#contentLengthdelete et patchSameSitecask-actor dans son propre dépôt et artefact, https://github.com/lihaoyi/castorcask-actor dans un artefact séparé, documenté séparément en tant qu'acteurs en fûtLes types de décorateurs incompatibles appliqués à une seule méthode sont maintenant une erreur de compilation
staticFiles et staticResources vous permet désormais de spécifier les en-têtes de réponse
Permettez cask.Main cask.decorators.compress cask.Routes
Autoriser la définition et l'utilisation des décorateurs pour les résultats de la réponse non- cask.Response
cask.WebsocketClientImplcask.WsClientRoutes#log implicitecask.util pour Scala.jsconcurrent.ExecutionContext.global dans cask.Routes par défaut, pour être remplacé si nécessairecask.Logger de basecask.WsHandler et cask.WsActorcask.Response est maintenant covariant./mill bootstrap