mirror of
https://github.com/metosin/reitit.git
synced 2026-02-09 05:03:11 +00:00
Reverse-routing docs
This commit is contained in:
parent
c58afb560f
commit
6a89437b35
3 changed files with 35 additions and 0 deletions
|
|
@ -21,6 +21,7 @@
|
||||||
* [Dev Workflow](advanced/dev_workflow.md)
|
* [Dev Workflow](advanced/dev_workflow.md)
|
||||||
* [Ring](ring/README.md)
|
* [Ring](ring/README.md)
|
||||||
* [Ring-router](ring/ring.md)
|
* [Ring-router](ring/ring.md)
|
||||||
|
* [Reverse-routing](ring/reverse_routing.md)
|
||||||
* [Default handler](ring/default_handler.md)
|
* [Default handler](ring/default_handler.md)
|
||||||
* [Static Resources](ring/static.md)
|
* [Static Resources](ring/static.md)
|
||||||
* [Dynamic Extensions](ring/dynamic_extensions.md)
|
* [Dynamic Extensions](ring/dynamic_extensions.md)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
# Ring
|
# Ring
|
||||||
|
|
||||||
* [Ring-router](ring.md)
|
* [Ring-router](ring.md)
|
||||||
|
* [Reverse-routing](reverse_routing.md)
|
||||||
* [Default handler](default_handler.md)
|
* [Default handler](default_handler.md)
|
||||||
* [Static Resources](static.md)
|
* [Static Resources](static.md)
|
||||||
* [Dynamic Extensions](dynamic_extensions.md)
|
* [Dynamic Extensions](dynamic_extensions.md)
|
||||||
|
|
|
||||||
33
doc/ring/reverse_routing.md
Normal file
33
doc/ring/reverse_routing.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Reverse routing with Ring
|
||||||
|
|
||||||
|
Both the `router` and the `match` are injected into Ring Request (as `::r/router` and `::r/match`) by the `reitit.ring/ring-handler` and with that, available to middleware and endpoints.
|
||||||
|
|
||||||
|
Below is an example how to use the `router` to do reverse routing from a ring handler:
|
||||||
|
|
||||||
|
```clj
|
||||||
|
(require '[reitit.core :as r])
|
||||||
|
(require '[reitit.ring :as ring])
|
||||||
|
|
||||||
|
(def app
|
||||||
|
(ring/ring-handler
|
||||||
|
(ring/router
|
||||||
|
[["/users" {:get (fn [{:keys [::r/router]}]
|
||||||
|
{:status 200
|
||||||
|
:body (for [i (range 10)]
|
||||||
|
{:uri (:path (r/match-by-name router ::user {:id i}))})})}]
|
||||||
|
["/users/:id" {:name ::user
|
||||||
|
:get (constantly {:status 200, :body "user..."})}]])))
|
||||||
|
|
||||||
|
(app {:request-method :get, :uri "/users"})
|
||||||
|
;{:status 200,
|
||||||
|
; :body [{:uri "/users/0"}
|
||||||
|
; {:uri "/users/1"}
|
||||||
|
; {:uri "/users/2"}
|
||||||
|
; {:uri "/users/3"}
|
||||||
|
; {:uri "/users/4"}
|
||||||
|
; {:uri "/users/5"}
|
||||||
|
; {:uri "/users/6"}
|
||||||
|
; {:uri "/users/7"}
|
||||||
|
; {:uri "/users/8"}
|
||||||
|
; {:uri "/users/9"}]}
|
||||||
|
```
|
||||||
Loading…
Reference in a new issue