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のFlask Projectに触発されたシンプルなScala Webフレームワークです。それは、不可解なDSLや複雑な非同期を避けて、Scala WebServersにシンプルさ、柔軟性、使いやすさをもたらすことを目指しています。 Caskは、Scalaを使用してWebサイト、バックエンドサーバー、またはREST APIを簡単に設定できます
Caskを使用してそれが好きなら、おそらく著者による次の本を楽しむでしょう。
実践的なScalaには、本全体でRequests-Scalaを広範囲に使用しており、第14章の全体があり、ライブラリ専用のSimple WebおよびAPIサーバーがあります。実践的なScalaは、 Scala全般、特にCaskでスキルを高めるのに最適な方法です。
Caskは、EJ Technologiesの厚意により、JProfiler Java Profilerを使用して紹介されています
@postJsonCachedを紹介して、 @postJson #123で元のボディペイロードへの参照を許可しますパスセグメントまたはクエリパラメーターとして渡されたときにURLパラメーターを適切にデコードします#114
静的パス#111を解決するときにリーディングスラッシュを保存します
cask.QueryParamsタイプを追加して、ルートメソッドが任意のクエリパラメーターを使用できるようにし、 cask.RemainingPathSegments subpath = true #108#109#110
org.xerial:sqlite-jdbcバージョン3.41.2.1までの例の例のsqlite-jdbcライブラリ@staticResourcesと@staticFilesデコレーターは、ファイル拡張機能に基づいてコンテンツタイプを自動的に推測するようになりました@cask.optionsデコレーターを追加しますactorContext明示的にすべてのルートケースクラスに渡すgeny.Writable#httpContentTypeおよびgeny.Writable#contentLengthに追加しますdeleteとpatchエンドポイントを追加しますSameSite Cookie属性を追加しますcask-actor独自のレポとアーティファクト、https://github.com/lihaoyi/castorに抽出しますcask-actor別のアーティファクトに分け、キャスク俳優として別々に文書化されています単一の方法に適用される不一致のデコレータタイプは、コンパイルエラーになりました
staticFilesとstaticResources使用すると、応答ヘッダーを指定できるようになりました
cask.decorators.compress cask.Routesまたはcask.Mainデコレーターとして使用することを許可すること
デコレーターを定義し、非cask.Response結果に使用できるようにします
cask.WebsocketClientImplのクラッシュを修正しますcask.WsClientでシンプルなクロスプラットフォームのビルトインWebSocketクライアントを提供しますRoutes#log暗黙的にしますcask.utilconcurrent.ExecutionContext.global in cask.Routesデフォルトでは、必要に応じてオーバーライデンするcask.Loggerインターフェイスに標準化しますcask.WsHandler and cask.WsActorでWebSocketを処理するためのシンプルなアクターベースのAPIを作成するcask.Response現在共変です./mill Bootstrapスクリプトを使用します