Commit graph

301 commits

Author SHA1 Message Date
Juho Teperi
82ad1fa6cc Clean duplicate require 2018-08-23 09:58:57 +03:00
Juho Teperi
e42c309144 Read query string in HTML5 router 2018-08-23 09:58:57 +03:00
Juho Teperi
0bd1b94274 Store uncoerced query-params in frontend match
This matches path-params and fragment.
2018-08-23 09:58:55 +03:00
Tommi Reiman
7b3aa5e631 better docs 2018-08-22 21:51:02 +03:00
Tommi Reiman
7cc8f84297 better docs 2018-08-22 19:39:04 +03:00
Tommi Reiman
5c835c5ad2 reitit.frontend/router 2018-08-22 18:56:31 +03:00
Tommi Reiman
c1d8ec99d8 muuntaja 2018-08-10 08:09:40 +03:00
Matthew Davidson
75f5e198e4 Merge master into url-decode-path-params 2018-08-07 21:14:35 -04:00
Matthew Davidson
ec051a0c9d Decode %-encoded URL path params
Also adds utility fn map-kv which is convenient for en/decoding
both maps (like path-params) and vectors (like path parts)

Converts path-params fn to use map-kv
2018-08-07 21:13:40 -04:00
Matthew Davidson
35656c3da6 Extract lookup struct-generating code 2018-08-07 21:10:33 -04:00
Tommi Reiman
df5d7fcad6 Fix Schema Upload explain 2018-08-07 11:40:05 +03:00
Matthew Davidson
c81dad4f94 Merge master into url-decode-path-params 2018-08-05 16:36:23 -04:00
Tommi Reiman
282fa7f012 Read :headers from request :headers. not :header-params 2018-08-05 23:00:59 +03:00
Tommi Reiman
af2d792290 Allows raw specs as parameters 2018-08-05 22:53:43 +03:00
Tommi Reiman
0d165e799f fix docs 2018-08-03 13:31:21 +03:00
Tommi Reiman
cc00ddb97c exception mw docs 2018-08-02 16:12:32 +03:00
Tommi Reiman
9fdb495ab2 :produces and :consumes can be overridden 2018-08-02 16:12:32 +03:00
Tommi Reiman
9330ee3bc5 multipart robusta 2018-08-02 16:12:32 +03:00
Tommi Reiman
4ea025dc83 more robust apidocs 2018-08-02 16:12:32 +03:00
Tommi Reiman
e879df54da case 2018-08-02 16:12:32 +03:00
Tommi Reiman
2c476177be Multipart-params revisited 2018-08-02 16:12:32 +03:00
Tommi Reiman
2ab54a1b99 Exception middleware revisited 2018-08-02 16:12:32 +03:00
Tommi Reiman
62cdfa2c52 cleanup multipart 2018-08-02 16:12:32 +03:00
Tommi Reiman
8156922ebc fix tests 2018-08-02 16:12:32 +03:00
Tommi Reiman
0f384c2b52 tune exceptions-middleware 2018-08-02 16:12:32 +03:00
Tommi Reiman
1eef610577 better names 2018-08-02 16:12:32 +03:00
Tommi Reiman
3a8eae6324 all muuntaja formats wrapped 2018-08-02 16:12:32 +03:00
Tommi Reiman
5c0cf19ef1 Muuntaja is a def 2018-08-02 16:12:32 +03:00
Tommi Reiman
805cb94d33 exception middleware tests 2018-08-02 16:12:32 +03:00
Tommi Reiman
b524736776 clj only 2018-08-02 16:12:32 +03:00
Tommi Reiman
fa639fc530 -alpha 2018-08-02 16:12:32 +03:00
Tommi Reiman
ed385afe5a add specs 2018-08-02 16:12:32 +03:00
Tommi Reiman
b54ee1a86b read encodes and decodes from Muuntaja! 2018-08-02 16:12:32 +03:00
Tommi Reiman
10ccbb72e3 wip 2018-08-02 16:12:32 +03:00
Tommi Reiman
230717ba65 double fast byte formatting 2018-08-02 16:06:34 +03:00
Tommi Reiman
7389838b59 mention sources 2018-08-01 19:51:54 +03:00
Tommi Reiman
bf3fb64088 query is a form-param 2018-08-01 19:43:58 +03:00
Tommi Reiman
682dd05568 tune perf 2018-08-01 19:28:52 +03:00
Tommi Reiman
6c23a5562a form-encode & form-decode 2018-08-01 18:57:17 +03:00
Tommi Reiman
303b124973 format 2018-08-01 18:56:58 +03:00
Tommi Reiman
0b4d1d2ee1 url-encode & url-decode 2018-08-01 18:08:03 +03:00
Tommi Reiman
bb4f861f00 0.2.0-SNAPSHOT 2018-07-28 12:07:16 +03:00
Tommi Reiman
604291f98e Better interceptor error messages 2018-07-28 12:05:12 +03:00
Tommi Reiman
8321589f04 Polish docs 2018-07-28 12:01:12 +03:00
Tommi Reiman
6c47b5fa94 Welcome Interceptor registry! 2018-07-27 15:14:10 +03:00
Tommi Reiman
94431352b8 Welcome Middleware registry! 2018-07-27 15:14:00 +03:00
Tommi Reiman
bf3007bfe1 Support for sequential child routes 2018-07-26 10:07:49 +03:00
Juho Teperi
ba10470fbb
Merge pull request #118 from metosin/frontend-routing-3
Frontend routing 3
2018-07-24 14:02:53 +03:00
Juho Teperi
08156f6a6d Replace Closure Html5History
- Create History protocol and two implementations: FragmentHistory and
Html5History
- API follows now Html5 history, i.e. push-state and replace-state
- path-prefix is removed
2018-07-24 13:58:22 +03:00
Matthew Davidson
f6054a7c40 Add URL-decoding support
Enables matching URLs with %-encoded chars, and decodes path params.
Currently Reitit cannot handle %-encoded paths, even though they can be
quite common (like `/search/my random search string`)

E.g.:
Successfully match `/space in path` to `/space%20in%20path`
Match `/path/:param1` to `/path/foo%20bar` and see
`:param1` => `"foo bar"` in path params

Does not apply %-decoding to routes, only URLs
Does not guarantee decoding '+' into a space. (Java's URLDecoder
supports it, but it shouldn't for URL path part.)
2018-07-23 00:53:53 -04:00
Tommi Reiman
16856749b1 handle name conflicts in router 2018-07-21 09:48:07 +03:00
Tommi Reiman
8b6bc9bb80 [:swagger :id] defaults to :reitit.swagger/default 2018-07-21 09:38:44 +03:00
Tommi Reiman
d6d2ee478c r/routes & r/compiled-routes 2018-07-18 12:17:16 +03:00
Tommi Reiman
5ded652147 coercion/coerce! can be used now 2018-07-17 12:41:29 +03:00
Tommi Reiman
4bbc1564ae cleanup imports 2018-07-17 12:41:19 +03:00
Juho Teperi
d90b7cff04
Merge pull request #108 from metosin/frontend-routing-easy
Add easy-simple wrapper over frontend router
2018-07-17 10:21:09 +03:00
Tommi Reiman
7514d1b263 rename extract-request-format 2018-07-16 16:01:34 +03:00
Tommi Reiman
346fbad775 Fix #109 2018-07-16 09:34:52 +03:00
Juho Teperi
d0f42459ee Add easy-simple wrapper over frontend router 2018-07-13 14:25:36 +03:00
Juho Teperi
2152bf0345 Use setToken in a click handler and add set-token function 2018-07-12 22:52:43 +03:00
Juho Teperi
6b8ebdebe6 Fix creating urls with query string when not using fragment 2018-07-12 22:52:41 +03:00
Juho Teperi
82f8aaa8cf Add frontend-controllers example 2018-07-12 12:49:14 +03:00
Juho Teperi
8971c8fd2b Add tests for missing route and params warnings 2018-07-12 12:49:14 +03:00
Juho Teperi
ae109e5350 Log warnings about missing route or params 2018-07-12 12:49:14 +03:00
Juho Teperi
264981fd3d Start version 0.1.4 2018-07-12 12:49:14 +03:00
Juho Teperi
245902bd4d Use query-string fn in core 2018-07-12 12:49:14 +03:00
Juho Teperi
434bc25cd6 Format code 2018-07-12 12:49:14 +03:00
Juho Teperi
7f1b2ce417 Check if js/location exists 2018-07-12 12:49:10 +03:00
Juho Teperi
61a9871ebb Fix empty fragment url 2018-07-12 12:48:24 +03:00
Juho Teperi
50faacab25 Fix tests 2018-07-12 12:48:20 +03:00
Juho Teperi
6553795cb5 Add some frontend history tests 2018-07-12 12:46:45 +03:00
Juho Teperi
3611a1bafe Fix frontend routing tests, add controller ns 2018-07-12 12:46:45 +03:00
Juho Teperi
417f35a318 Create example 2018-07-12 12:46:41 +03:00
Juho Teperi
468a0947d2 Frontend routing implementation 2018-07-12 11:02:35 +03:00
Tommi Reiman
79d8e1bb91 0.1.3 2018-06-25 17:50:36 +03:00
Tommi Reiman
18bd2e684f bump up version (all but docs) 2018-06-24 22:32:23 +03:00
Tommi Reiman
3af1bd2083 Allow empty response :body for Swagger 2018-06-24 19:20:22 +03:00
Tommi Reiman
f6c460d05c If response body is not defined, response is passed as-is 2018-06-24 18:36:55 +03:00
Tommi Reiman
1923f2d08e handle query-parameters in reverse routing 2018-06-14 17:57:36 +03:00
Tommi Reiman
26be209d3a handle nil with IntoString 2018-06-14 17:50:24 +03:00
Tommi Reiman
771128c281 Support all parameter types 2018-06-14 13:40:32 +03:00
Tommi Reiman
8f7bb94c94 Support ds/maybe in spec-coercion 2018-06-14 13:40:17 +03:00
Tommi Reiman
bcc2564498 default coercion format reads from Muuntaja keys 2018-06-11 08:52:53 +03:00
Tommi Reiman
73a5bd2d3d remove dead code 2018-06-11 08:52:03 +03:00
Tommi Reiman
6b95fab88c 0.1.2 2018-06-06 10:43:59 +03:00
Tommi Reiman
f2d3d0a125 if -> when 2018-06-06 10:34:23 +03:00
Tommi Reiman
b2c0b2fdfa confirm to ring spec, fixes #83 2018-06-06 10:34:23 +03:00
Tommi Reiman
4a4cd5ae9e response/redirect 2018-06-06 10:34:23 +03:00
Tommi Reiman
21de7a038a 0.1.2-SNAPSHOT 2018-06-06 10:34:23 +03:00
Tommi Reiman
a99789216c Use redirects for index-files 2018-06-06 10:34:23 +03:00
Tommi Reiman
fa078470c5 swagger-ui path work, wip 2018-06-06 10:34:23 +03:00
Tommi Reiman
7a544cd52d Better handling of nil in routing 2018-06-06 10:34:23 +03:00
Tommi Reiman
56203ba11d no default method in ring 2018-06-06 10:34:23 +03:00
Tommi Reiman
4be84d22f4 Fix example 2018-06-06 10:34:23 +03:00
Tommi Reiman
d48515e084 Strip nil routes from all positions 2018-06-06 10:34:23 +03:00
Tommi Reiman
361e778fa3 0.1.2-SNAPSHOT, update deps 2018-05-29 08:03:15 +03:00
Kirill Chernyshov
43f5a9ebe8 Fixes after review
* Support catch-all-param as a swagger path template part
2018-05-29 01:07:22 +02:00
Kirill Chernyshov
b7341265e9 Fix paths in swagger.json for endpoints with path parameters 2018-05-28 18:09:03 +02:00
Tommi Reiman
fc71947bbb 0.1.1 2018-05-20 21:55:46 +03:00
Tommi Reiman
1262a1fab7 docs 2018-05-20 21:41:38 +03:00
Tommi Reiman
13c02ac51c no-op-transformer 2018-05-14 08:31:49 +03:00
Tommi Reiman
8a320164a4 welcome swagger-ui! 2018-05-14 08:21:47 +03:00
Tommi Reiman
e137b8baec linear-router serves unnamed catch-all paths 2018-05-14 08:21:03 +03:00
Tommi Reiman
027d46508b Update deps 2018-05-14 08:20:29 +03:00
Tommi Reiman
05fbaa1110 Initial swagger-ui integration 2018-05-07 08:59:21 +03:00
Tommi Reiman
0b711b2560 Support :index-files in create-resource-handler 2018-04-29 16:51:53 +03:00
Tommi Reiman
f8a43f0996 use ring for serving resources. 2018-04-25 08:32:01 +03:00
Tommi Reiman
fc0b634865 . 2018-04-24 23:58:15 +03:00
Tommi Reiman
4e49316383 Fix based on Miikka’s comments 2018-04-24 21:17:25 +03:00
Tommi Reiman
8ebcdc8429 swagger & static resource docs 2018-04-23 08:27:16 +03:00
Tommi Reiman
c25da60053 ring/create-resource-handler 2018-04-22 22:51:14 +03:00
Tommi Reiman
acbef8527c ring/routes, fix async default handling 2018-04-22 22:50:17 +03:00
Tommi Reiman
f66850dacb swagger-spec-handler => create-swagger-handler 2018-04-22 21:39:38 +03:00
Tommi Reiman
6d387c8822 perf tuning ring-handler 2018-04-22 17:55:32 +03:00
Tommi Reiman
586b02f67d Fix based on Miikka’s comments 2018-03-22 18:57:53 +02:00
Tommi Reiman
b4835a7860 Polish code 2018-03-21 08:15:28 +02:00
Tommi Reiman
f547576a44 Support also booleans, more tests 2018-03-21 07:48:56 +02:00
Tommi Reiman
5ef30443ef Initial take on IntoString 2018-03-20 16:30:53 +02:00
Tommi Reiman
5da599ac5b Cleanup 2018-03-18 11:32:44 +02:00
Tommi Reiman
3cc9fedcbf Fixed based on Miikka’s comments 2018-03-18 11:21:49 +02:00
Tommi Reiman
b57d900507 0.1.1-SNAPSHOT 2018-03-17 14:32:51 +02:00
Tommi Reiman
9a2a8a1f16 Tests for swagger 2018-03-17 14:19:23 +02:00
Tommi Reiman
f87cd2f09f Support both Schema & Spec swagger 2018-03-17 11:06:53 +02:00
Tommi Reiman
b43c8cfed9 Swagger WIP 2018-03-17 10:53:19 +02:00
Tommi Reiman
32c3082475 Initial reitit-swagger 2018-03-17 10:21:27 +02:00
Tommi Reiman
d4a4949ad0 0.1.0 2018-02-19 22:03:30 +02:00
Tommi Reiman
e1fbe4460f Update deps 2018-02-19 07:43:42 +02:00
Tommi Reiman
3005e04a6e Inject Match and Router under reitit.core ns in ring 2018-02-12 07:49:24 +02:00
Tommi Reiman
c50d95ec3e . 2018-02-11 21:44:47 +02:00
Tommi Reiman
32fb3ca294 :responses have :body, not :schema 2018-02-11 21:38:15 +02:00
Tommi Reiman
20b9d3c6c8 :parts => :path-parts 2018-02-01 16:25:04 +02:00
Tommi Reiman
54b24be28e :params => :path-params 2018-02-01 16:23:44 +02:00
Tommi Reiman
fda6a1e06f Support not-found with ring 2018-01-23 20:29:22 +02:00
Dmitri Sotnikov
6625cf31d7
allow custom default-handler to ring-router 2018-01-07 16:36:26 -05:00
Tommi Reiman
fb99b4f9fd Parameter & Response Coercion with specs 2017-12-31 11:34:37 +02:00
Tommi Reiman
07bcd2ea59 Cleanup 2017-12-31 11:34:13 +02:00
Tommi Reiman
708fa24590 rename package 2017-12-31 11:30:55 +02:00
Tommi Reiman
b7b0b7c81d Docs for Ring spec validation 2017-12-29 11:56:01 +02:00
Tommi Reiman
9273f99806 Middleware can also contribute to router specs 2017-12-28 22:41:02 +02:00
Tommi Reiman
abb09e2736 Fix -exclude 2017-12-27 21:40:36 +02:00
Tommi Reiman
5c53b6e989 Fix path spec - doesn't have to start with "/" 2017-12-27 20:28:25 +02:00
Tommi Reiman
6321d1e8be Docs for route-data validation 2017-12-27 20:27:51 +02:00
Tommi Reiman
1a9583b31b Support ring-route-data validation 2017-12-26 22:41:17 +02:00
Tommi Reiman
0dbb75ad44 Add :path & :method to Endpoints 2017-12-26 22:40:53 +02:00
Tommi Reiman
06cb1301cd Support route data validation in router 2017-12-26 22:40:34 +02:00
Tommi Reiman
ce15ae95ec Exclude -lookup (cljs) 2017-12-26 22:39:14 +02:00
Tommi Reiman
ee0c733726 Compile routes already in reitit.core/router 2017-12-26 17:56:46 +02:00
Tommi Reiman
8a48d6790b . 2017-12-16 10:51:32 +02:00
Tommi Reiman
1427f12c53 fix reflection warnings 2017-12-14 11:45:01 +02:00
Tommi Reiman
2dc3636064 Coercion is a reified Protocol, not a Record 2017-12-14 09:16:10 +02:00