mirror of
https://github.com/metosin/reitit.git
synced 2025-12-17 00:11:11 +00:00
3 KiB
3 KiB
reitit

A friendly data-driven router for Clojure(Script).
- Simple data-driven route syntax
- Route conflict resolution
- First-class route meta-data
- Bi-directional routing
- Ring-router with data-driven middleware
- Pluggable coercion (clojure.spec)
- Extendable
- Fast
See Issues for roadmap.
Latest version
All bundled:
[metosin/reitit "0.1.0-SNAPSHOT"]
Optionally, the parts can be required separately:
[metosin/reitit-core "0.1.0-SNAPSHOT"] ; just the router
[metosin/reitit-ring "0.1.0-SNAPSHOT"] ; ring-router
[metosin/reitit-spec "0.1.0-SNAPSHOT"] ; spec-coercion
Quick start
(require '[reitit.core :as r])
(def router
(r/router
[["/api/ping" ::ping]
["/api/orders/:id" ::order]]))
(r/match-by-path router "/api/ping")
; #Match{:template "/api/ping"
; :meta {:name ::ping}
; :result nil
; :params {}
; :path "/api/ping"}
(r/match-by-name router ::order {:id 2})
; #Match{:template "/api/orders/:id",
; :meta {:name ::order},
; :result nil,
; :params {:id 2},
; :path "/api/orders/2"}
Documentation
Check out the full documentation!
Special thanks
To all Clojure(Script) routing libs out there, expecially to Ataraxy, Bide, Bidi, Compojure and Pedestal.
Also to Compojure-api, Kekkonen and Ring-swagger and for the data-driven syntax, coercion & stuff.
And some Yada too.
Development instructions
The documentation is built with gitbook. To preview your changes locally:
npm install -g gitbook-cli
gitbook install
gitbook serve
To bump up version:
# new version
./scripts/set-version "1.0.0"
./scripts/lein-modules install
# works
lein test
# deploy to clojars
./scripts/lein-modules do clean, deploy clojars
License
Copyright © 2017 Metosin Oy
Distributed under the Eclipse Public License, the same as Clojure.