Skip to content

Instantly share code, notes, and snippets.

@s1monw1
Created October 7, 2022 11:48
Show Gist options
  • Save s1monw1/aac659331ceca64bb4ea0f73ec289f77 to your computer and use it in GitHub Desktop.
Save s1monw1/aac659331ceca64bb4ea0f73ec289f77 to your computer and use it in GitHub Desktop.
val pingPongHandler: HttpHandler = { _ -> Response(OK).body("pong!") }
val greetHandler: HttpHandler = { req: Request ->
val name: String? = req.query("name")
Response(OK).body("hello ${name ?: "unknown!"}")
}
val routing: RoutingHttpHandler = routes(
"/ping" bind GET to pingPongHandler,
"/greet" bind GET to greetHandler
)
val requestTimeLogger: Filter = Filter { next: HttpHandler ->
{ request: Request ->
val start = clock.millis()
val response = next(request)
val latency = clock.millis() - start
logger { "Request to ${request.uri} took ${latency}ms" }
response
}
}
val app: HttpHandler =
ResponseFilters.GZip()
.then(requestTimeLogger)
.then(routing)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment