FintrospectBenchmarkServer.scala 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import java.time.ZonedDateTime._
  2. import java.time.format.DateTimeFormatter
  3. import java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME
  4. import java.time.{ZonedDateTime, ZoneId}
  5. import javax.swing.text.DateFormatter
  6. import com.twitter.finagle.http.Method.Get
  7. import com.twitter.finagle.http.Request
  8. import com.twitter.finagle.http.Status._
  9. import com.twitter.finagle.http.path.Root
  10. import com.twitter.finagle.stats.NullStatsReceiver
  11. import com.twitter.finagle.tracing.NullTracer
  12. import com.twitter.finagle.{Http, Service}
  13. import com.twitter.util.Await
  14. import io.circe._
  15. import io.circe.generic.auto._
  16. import io.circe.parser._
  17. import io.circe.syntax._
  18. import io.fintrospect.formats.json.Circe.ResponseBuilder._
  19. import io.fintrospect.formats.json.Circe.JsonFormat._
  20. import io.fintrospect.formats.json.Circe.ResponseBuilder._
  21. import io.fintrospect.{ModuleSpec, RouteSpec}
  22. object FintrospectBenchmarkServer extends App {
  23. def plainTextHelloWorld() = {
  24. import io.fintrospect.formats.PlainText.ResponseBuilder._
  25. Service.mk { r: Request => Ok("Hello, World!")
  26. .withHeaders("Server" -> "Example", "Date" -> RFC_1123_DATE_TIME.format(now()))
  27. }
  28. }
  29. def jsonHelloWorld() = {
  30. case class Message(message: String)
  31. Service.mk { r: Request => Ok(encode(Message("Hello, World!")))
  32. .withHeaders("Server" -> "Example", "Date" -> RFC_1123_DATE_TIME.format(now()))
  33. }
  34. }
  35. val module = ModuleSpec(Root)
  36. .withRoute(RouteSpec().at(Get) / "plaintext" bindTo plainTextHelloWorld)
  37. .withRoute(RouteSpec().at(Get) / "json" bindTo jsonHelloWorld)
  38. Await.ready(
  39. Http.server
  40. .withCompressionLevel(0)
  41. .withStatsReceiver(NullStatsReceiver)
  42. .withTracer(NullTracer)
  43. .serve(":9000", module.toService)
  44. )
  45. }