scala
libraryDependencies += "org.scalatra" %% "scalatra-json" % "2.7.1"
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.6.10"
scala
import org.scalatra._
import org.scalatra.json._
import org.json4s._
import org.json4s.jackson.JsonMethods._
class MyJsonServlet extends ScalatraServlet with JacksonJsonSupport {
protected implicit val jsonFormats: Formats = DefaultFormats
before() {
contentType = formats("json")
}
post("/users") {
val requestJson = parse(request.body)
val username = (requestJson \ "username").extract[String]
val age = (requestJson \ "age").extract[Int]
val responseJson = ("message" -> "User created successfully")
responseJson
}
get("/users/:id") {
val id = params("id")
val userJson = ("id" -> id) ~ ("username" -> "John") ~ ("age" -> 25)
userJson
}
}
scala
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.ServletContextHandler
import org.eclipse.jetty.servlet.ServletHolder
object JettyLauncher {
def main(args: Array[String]) {
val server = new Server(8080)
val context = new ServletContextHandler(server, "/")
context.addServlet(new ServletHolder(classOf[MyJsonServlet]), "/*")
server.start()
server.join()
}
}