| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import java.net.InetSocketAddress
- import java.text.{DateFormat, SimpleDateFormat}
- import java.util.Date
- import io.finch._
- import com.twitter.finagle.Service
- import com.twitter.finagle.Http
- import com.twitter.finagle.stats.NullStatsReceiver
- import com.twitter.finagle.tracing.NullTracer
- import com.twitter.util.Await
- import io.circe._
- import io.circe.generic.auto._
- import io.circe.jawn._
- import io.circe.syntax._
- import io.circe.{Decoder, Encoder, Json}
- object WebServer extends App {
- private val dateFormat: DateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z")
- import io.finch.circe._
- val json = get("json") {
- Ok(Json.obj("message" -> Json.string("Hello, World!")))
- .withHeader("Server" -> "finch")
- .withHeader("Date" -> dateFormat.format(new Date()))
- }
- val plaintext: Endpoint[String] = get("plaintext") {
- Ok("Hello, World!")
- .withHeader("Server" -> "finch")
- .withHeader("Date" -> dateFormat.format(new Date()))
- .withContentType(Some("text/plain"))
- }
- Await.ready(Http.server
- .withCompressionLevel(0)
- .withStatsReceiver(NullStatsReceiver)
- .withTracer(NullTracer)
- .serve(":9000", (json :+: plaintext).toService)
- )
- }
|