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 Scala ที่ได้รับแรงบันดาลใจจากโครงการ Flask ของ Python มันมีจุดมุ่งหมายที่จะนำความเรียบง่ายความยืดหยุ่นและความสะดวกในการใช้งาน Scala Webservers หลีกเลี่ยง DSL ที่เป็นความลับหรืออะซิงโครนัสที่ซับซ้อน Cask ทำให้ง่ายต่อการตั้งค่าเว็บไซต์เซิร์ฟเวอร์แบ็กเอนด์หรือ REST API โดยใช้ Scala
หากคุณใช้ถังและชอบคุณอาจจะเพลิดเพลินไปกับหนังสือต่อไปนี้โดยผู้แต่ง:
Hands-on Scala มีการร้องขอการร้องขออย่างกว้างขวางตลอดทั้งเล่มและมี บทที่ 14 ทั้งหมด: เซิร์ฟเวอร์เว็บและ API ที่เรียบง่าย ที่อุทิศให้กับห้องสมุด 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 Decorators ตอนนี้อนุมานประเภทเนื้อหาโดยอัตโนมัติตามส่วนขยายไฟล์@cask.options DecoratoractorContext ส่งผ่านทุกเส้นทางทุกเส้นทางgeny.Writable#httpContentType และ geny.Writable#contentLengthdelete และ patchSameSitecask-actor ลงใน repo และสิ่งประดิษฐ์ของตัวเอง https://github.com/lihaoyi/castorcask-actor ออกเป็นสิ่งประดิษฐ์แยกต่างหากซึ่งจัดทำเอกสารแยกต่างหากว่าเป็นนักแสดงถังประเภทมัณฑนากรที่ไม่ตรงกันที่ใช้กับวิธีเดียวตอนนี้เป็นข้อผิดพลาดในการรวบรวม
staticFiles และ staticResources ช่วยให้คุณระบุส่วนหัวการตอบกลับได้
อนุญาตให้ใช้ cask.decorators.compress เป็น cask.Routes หรือ cask.Main dorjonator โดยไม่ต้องล้มเหลวในการตอบกลับ websocket
อนุญาตให้นักตกแต่งได้กำหนดและใช้สำหรับผลการตอบสนองที่ไม่ใช่ cask.Response
cask.WebsocketClientImplcask.WsClientRoutes#log โดยนัยcask.util สำหรับ scala.jsconcurrent.ExecutionContext.global ใน cask.Routes โดยค่าเริ่มต้นจะถูกแทนที่หากจำเป็นcask.Logger พื้นฐานcask.WsHandler และ cask.WsActorcask.Response ตอนนี้เป็น covariant./mill สคริปต์ bootstrap มิลล์