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 웹 프레임 워크입니다. 비밀 DSL 또는 복잡한 비동기를 피하면서 Scala 웹 서버에게 단순성, 유연성 및 사용 편의성을 제공하는 것을 목표로합니다. Cask는 Scala를 사용하여 웹 사이트, 백엔드 서버 또는 REST API를 쉽게 설정할 수 있도록합니다.
캐스크를 사용하고 좋아한다면 아마도 저자의 다음 책을 즐길 것입니다.
실습 Scala는 책 전체에서 요청 스케일라를 광범위하게 사용하고 있으며, 14 장 : 도서관 전용 간단한 웹 및 API 서버가 있습니다. 실습 스칼라는 일반적으로 스칼라, 특히 통을 레벨링하는 좋은 방법입니다.
Cask는 EJ Technologies의 Jprofiler Java Profiler를 사용하여 프로파일
@postJson #123의 원래 바디 페이로드를 참조 할 수 있도록 @postJsonCached 소개경로 세그먼트 또는 쿼리 매개 변수로 전달 될 때 URL 매개 변수를 올바르게 디코딩합니다.
정적 경로를 해결할 때 선행 슬래시를 유지하십시오 #111
cask.QueryParams 유형을 추가하여 경로 방법이 임의의 쿼리 매개 변수를 가져 오도록 허용하고 cask.RemainingPathSegments subpath = true #108 #109 #110을 대체합니다.
org.xerial:sqlite-jdbc 예제 버전 3.41.2.1 TO의 예제@staticResources 및 @staticFiles Decorators는 이제 파일 확장자를 기반으로 컨텐츠 유형을 자동으로 추론합니다.@cask.options 데코레이터를 추가하십시오actorContext 명시 적으로 모든 경로에 전달하여 Case Case 클래스로 전달하십시오.geny.Writable#httpContentType 및 geny.Writable#contentLength 에 대한 지원을 추가하십시오delete 및 patch 용 엔드 포인트를 추가하십시오SameSite 쿠키 속성을 추가하십시오cask-actor 자체 리포 및 아티팩트로 추출하십시오. https://github.com/lihaoyi/castorcask-actor 별도의 인공물로 별도로 별도로 문서화하여 캐스크 액터로 별도로 문서화단일 방법에 적용되는 불일치 데코레이터 유형은 이제 컴파일 오류입니다.
이제 staticFiles 및 staticResources 이 응답 헤더를 지정할 수 있습니다.
cask.decorators.compress cask.Routes 또는 cask.Main 응답에 충돌하지 않고 메인 데코레이터로 사용하도록 허용하십시오.
데코레이터를 정의하고 비를 비 cask.Response 에 사용하도록 허용합니다. 응답 결과
cask.WebsocketClientImpl 에서 충돌을 수정하십시오cask.WsClient 에 간단한 크로스 플랫폼 내장 WebSocket 클라이언트를 제공하십시오Routes#log 암시 적으로 만듭니다cask.util 교차 게시합니다concurrent.ExecutionContext.global in cask.Routes 기본적으로 삽입하십시오. 필요한 경우 재정의됩니다.cask.Logger 표준화하십시오 .Logger 인터페이스cask.WsHandler 및 cask.WsActor 에서 websockets를 처리하기위한 간단한 액터 기반 API를 만듭니다.cask.Response 이제 공분산입니다./mill bootstrap 스크립트를 사용하십시오