30 lines
978 B
Plaintext
30 lines
978 B
Plaintext
:title
|
|
request_query_route
|
|
|
|
:sig
|
|
DValue request_query_route(Request& context, String default_path = "index")
|
|
|
|
:see
|
|
request_query_path
|
|
request_context_params
|
|
route_path_sanitize
|
|
request_script_url
|
|
|
|
:content
|
|
Builds a small route tree from the first keyless query-string segment.
|
|
|
|
Fields:
|
|
|
|
- `raw_path`: normalized but untrusted route input, for diagnostics only
|
|
- `l_path`: sanitized full route path, or empty string when input was rejected
|
|
- `page`: first path segment of `l_path`, or empty string when input was rejected
|
|
- `valid`: boolean; true when `l_path` is safe
|
|
|
|
```cpp
|
|
DValue route = request_query_route(context);
|
|
if(route["valid"].to_bool())
|
|
print("route=", route["l_path"].to_string());
|
|
```
|
|
|
|
This supports front-controller apps that use URLs such as `/?dashboard` or `/?workspace/projects` while still allowing ordinary named query parameters alongside the route. The returned `l_path` is already sanitized for composing under an application-controlled route root.
|