Skip to content

Instantly share code, notes, and snippets.

@k33g
Created January 4, 2016 16:24
Show Gist options
  • Save k33g/c53cbc6fc3ed29c2bcac to your computer and use it in GitHub Desktop.
Save k33g/c53cbc6fc3ed29c2bcac to your computer and use it in GitHub Desktop.
Golo <3 Vert.x
module golo.x
import io.vertx.core.Vertx
import io.vertx.core.http.HttpServer
import io.vertx.ext.web.Router
import io.vertx.ext.web.handler
let vertx = Vertx.vertx()
function createHttpServer = {
return vertx: createHttpServer()
}
function getRouter = {
let router = Router.router(vertx)
router: route(): handler(BodyHandler.create())
return router
}
function startHttpServer = |server, router, port, staticPath| {
router: route(staticPath): handler(StaticHandler.create())
server: requestHandler(|httpRequest| -> router: accept(httpRequest)): listen(port)
println("HttpServer is listening on " + port)
return server
}
function main = |args| {
let server = createHttpServer()
let router = getRouter()
router: get("/hello"): handler(|context| {
let response = context: response()
response: putHeader("content-type", "text/plain")
response: end("Hello World from Golo.x-Web!")
})
router: get("/hi"): handler(|context| {
let response = context: response()
response: putHeader("content-type", "application/json")
response: end(JSON.stringify(map[
["message","Hello World from Golo.x-Web!"]
]))
})
startHttpServer(
server=server,
router=router,
port=9090,
staticPath="/*"
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment