|
@@ -1,13 +1,16 @@
|
|
import std / [macros, exitprocs]
|
|
import std / [macros, exitprocs]
|
|
import scorper
|
|
import scorper
|
|
-
|
|
|
|
|
|
+import jsony
|
|
|
|
|
|
type AsyncCallback = proc (request: Request): Future[void] {.closure, gcsafe,
|
|
type AsyncCallback = proc (request: Request): Future[void] {.closure, gcsafe,
|
|
raises: [].}
|
|
raises: [].}
|
|
|
|
|
|
|
|
+type Resp = object
|
|
|
|
+ message: string
|
|
|
|
+
|
|
proc jsonHandler(req: Request) {.route("get", "/json"), async.} =
|
|
proc jsonHandler(req: Request) {.route("get", "/json"), async.} =
|
|
let headers = {"Content-type": "application/json"}
|
|
let headers = {"Content-type": "application/json"}
|
|
- await req.resp("""{"message":"Hello, World!"}""", headers.newHttpHeaders())
|
|
|
|
|
|
+ await req.resp(Resp(message: "Hello, World!").toJson(), headers.newHttpHeaders())
|
|
|
|
|
|
proc plaintextHandler(req: Request) {.route("get", "/plaintext"), async.} =
|
|
proc plaintextHandler(req: Request) {.route("get", "/plaintext"), async.} =
|
|
let headers = {"Content-type": "text/plain"}
|
|
let headers = {"Content-type": "text/plain"}
|
|
@@ -21,7 +24,7 @@ when isMainModule:
|
|
r.addRoute(jsonHandler)
|
|
r.addRoute(jsonHandler)
|
|
r.addRoute(plaintextHandler)
|
|
r.addRoute(plaintextHandler)
|
|
var server = newScorper(address, r, flags)
|
|
var server = newScorper(address, r, flags)
|
|
- exitprocs.addExitProc proc() = waitFor server.closeWait()
|
|
|
|
|
|
+ exitprocs.addExitProc proc() = server.stop();waitFor server.closeWait()
|
|
server.start()
|
|
server.start()
|
|
|
|
|
|
waitFor server.join()
|
|
waitFor server.join()
|