heph
heph copied to clipboard
HTTP router
To route HTTP request based on the method and URL to the correct Service
(#491).
impl Route {
fn route<S>(&mut self, method: Method, url: &str, service: S) {
// ...
}
fn get<S>(&mut self, url: &str, service: S) {
self.route(Method::Get, url, service)
}
}
Two additional useful features:
- Wildcards, e.g.
/static_files/*
would route any URL that starts with/static_files/
to a service. - URL parameters, e.g.
/user/{handle}
would extracthandle
from the URL.
Possible data structure: https://en.wikipedia.org/wiki/Trie.
Blocked on #491.
Pr https://github.com/Thomasdezeeuw/heph/pull/507 added the route!
macro, but I'm leaving this open for a dynamic implementation.