method Router.handle
Answers a request: the middleware chain, then the matching route.
Example:
use std.http { Router, Request, Reply, Header }
fn main() io, net, time {
let router = Router.new().get("/hi/:name", (req: Request) => Reply.text("hi {req.param("name") ?? "?"}"))
// no server needed: a router can be called with any Request, e.g. in a unit test
let req = Request{ method: "GET", target: "/hi/Ann", path: "/hi/Ann", rawQuery: "", version: "HTTP/1.1", headers: [], body: Utf8.encode(""), peer: "", params: [] }
let rep = router.handle(req)
print("{rep.status} {Utf8.decode(rep.body)!}")
}Output
200 hi Ann
pub(api) fn handle(req: Request) -> Reply net, io, timeThread safety. reads the router only; safe to call from many tasks at once.
Since. 1.0.0-beta
Parameters
| Name | Type |
|---|---|
req | Request |
Returns
Effects
net, io, time
Defined in: std/http/http.oxl:3685