ShreemanArjun
class ResponseTimeHeader { companion object Plugin : BaseApplicationPlugin<ApplicationCallPipeline, Configuration, ResponseTimeHeader> { override val key = AttributeKey<ResponseTimeHeader>("ResponseTimeHeader") override fun install( pipeline: ApplicationCallPipeline, configure: Configuration.() -> Unit, ): ResponseTimeHeader { val plugin = ResponseTimeHeader() var time: Duration? = Duration.ZERO pipeline.intercept(ApplicationCallPipeline.Monitoring) { time = measureTime { proceed() } } pipeline.sendPipeline.intercept(ApplicationSendPipeline.After) { call.response.header("X-Response-Time", "${time?.inWholeMilliseconds} ms") } return plugin } } }
Chris Lee
Aleksei Tirman [JB]
A modern programming language that makes developers happier.