Commit graph

684 commits

Author SHA1 Message Date
Stig Brautaset
f262daa454
Add separate validation options to Malli coercer
The motivation for this is adding a new API to a legacy service whose
data model has evolved over the years. Maybe we cannot guarantee the
presence of all fields that are considered mandatory now. Rather than
blowing up when attempting to return legacy entries we may want to
disable response validation.

However, we do want to ensure *new* entries added to the system are
valid, so we do not want to disable request validation.

Retain the ability to turn off both request and response validation with
a single setting for backwards compatibility.
2023-10-30 10:44:22 +00:00
Stig Brautaset
0fff06ec6b
Correct "effects" to "affects" in comments & docs
Their usage is commonly confused, but "affect" is usually a verb and
"effect" is usually a noun. In this case we want the verb. See also
https://www.merriam-webster.com/grammar/affect-vs-effect-usage-difference
2023-10-13 21:10:20 +01:00
Juho Teperi
15e0c95cb6 0.7.0-alpha7 2023-10-03 13:34:36 +03:00
Juho Teperi
d4a85c40e6 Revert group id change
Per discussions in Slack, changing the group id causes too much problems
2023-10-03 13:06:23 +03:00
Tommi Reiman
6a39dcd6ec 0.7.0-alpha6 2023-09-11 15:03:31 +03:00
Joel Kaasinen
ccc2b5636e move all libs metosin/reitit => fi.metosin/reitit
metosin/ is a clojars legacy group, and new modules like
fi.metosin/openapi can't be created under it. Let's move everything
under fi.metosin
2023-09-11 11:04:36 +03:00
Joel Kaasinen
bad798d90d feat: allow vectors for openapi/swagger :tags
no need to insist on set, and many of our examples use vectors anyway
2023-09-11 07:59:17 +03:00
Joel Kaasinen
b4c0936207 Merge remote-tracking branch 'origin/master' into fix-openapi-examples 2023-09-11 07:53:15 +03:00
Joel Kaasinen
5352fd4f99 fix: swagger & openapi ::tags spec
`#{}` isn't a valid :kind predicate
2023-09-11 07:40:13 +03:00
Joel Kaasinen
b206fc79b3 fix: spec for openapi-feature 2023-09-11 07:12:00 +03:00
Joel Kaasinen
7352358662 feat: rename openapi :content-types keyword, split for req & resp 2023-09-08 15:17:35 +03:00
Paulo Rafael Feodrippe
68adf50362
Remove duplicated :operationId 2023-09-07 16:39:39 -04:00
Joel Kaasinen
497da675b9 refactor: use update-vals 2023-09-01 10:37:17 +03:00
Joel Kaasinen
241c8367e3 feat: dissoc definitions from swagger methods
we only want the definitions on the very top level of the swagger doc
2023-08-30 09:38:33 +03:00
Joel Kaasinen
b316840ea0 fix: compile instead of -compile-model in malli.cljc
-compile-model now takes a vector of models, so
(-compile-model this model nil) fails. Just use compile directly like
master does.
2023-08-30 09:38:33 +03:00
Joel Kaasinen
f1d26791fc Merge branch 'master' into rework-pr-589 2023-08-30 08:29:06 +03:00
Joel Kaasinen
85ebb343ed refactor: remove dead code 2023-08-28 13:48:28 +03:00
Joel Kaasinen
d5021e549a fix: pick up openapi examples from [:responses _ :content :default] 2023-08-28 13:48:23 +03:00
Joel Kaasinen
25aee5ed22 Merge remote-tracking branch 'origin/master' into fix-openapi-example 2023-08-28 13:01:58 +03:00
Joel Kaasinen
e4c75c7354 fix: dissoc unsupported [:responses nnn :content] for swagger
otherwise swagger generation crashes when it tries to serialize
something like `{:content {"foo/bar" any?}}`

also fix examples/ring-malli-swagger
2023-08-28 11:18:00 +03:00
Joel Kaasinen
8af89c05cb refactor: get rid of reitit.coercion/get-apidocs 2023-08-28 10:06:14 +03:00
Joel Kaasinen
233ac19914 refactor: remove dead code 2023-08-28 10:03:07 +03:00
Joel Kaasinen
6f111bce2e refactor: share -get-apidocs-openapi between malli, spec & schema 2023-08-28 09:24:10 +03:00
Joel Kaasinen
051452231a refactor: -get-model-apidocs for schema & spec
not used yet tho
2023-08-28 09:02:11 +03:00
Joel Kaasinen
f943b025cb refactor: no need to pass options into -get-apidocs-openapi 2023-08-28 08:59:58 +03:00
Joel Kaasinen
ee298ec362 refactor: Coercion.-get-model-apidocs, use it for malli openapi 2023-08-28 08:42:54 +03:00
Joel Kaasinen
803ed0933a refactor: parameterise -get-apidocs-openapi with ->schema-object 2023-08-24 11:05:43 +03:00
Tommi Reiman
b0c810a981
Merge pull request #628 from metosin/openapi-parameters
Openapi parameters
2023-08-24 09:25:46 +03:00
Tommi Reiman
05cbed815f review comment fixes 2023-08-24 08:38:18 +03:00
Tommi Reiman
adef7ad06e read openapi metadata into openapi description 2023-08-23 16:43:34 +03:00
Tommi Reiman
226ca889b6 openapi content tests 2023-08-18 17:17:56 +03:00
Tommi Reiman
d8e9819e0a fix responses & request 2023-08-18 16:47:20 +03:00
Juho Teperi
4a182588b4 Release 0.7.0-alpha5 2023-06-14 16:06:20 +03:00
Juho Teperi
a032abc910 Fix interceptors deps 2023-06-12 18:15:53 +03:00
Juho Teperi
cf5906030a Reitit-dev fixes 2023-06-12 17:57:51 +03:00
Juho Teperi
ac410507f2 Fix reitit-dev deps 2023-06-12 17:50:10 +03:00
Tommi Reiman
b1404ada6d top-level :request coercion & stuff 2023-05-28 16:49:08 +03:00
Tommi Reiman
93a4246682 allow default 2023-05-28 12:07:01 +03:00
Tommi Reiman
d17c97780e wrap :content schemas in :schema 2023-05-27 19:01:17 +03:00
Tommi Reiman
3e6c3f589f review comments 2023-05-22 20:23:47 +03:00
Tommi Reiman
9ac713f0e5 doesn't work properly with spec 2023-05-22 09:16:57 +03:00
Tommi Reiman
ce06214014 welcome 2-phase schema compilation
1) use `:update-paths` to handle data in certain (loose) paths differently
  - accumulate schemas in all relevant routers into vector
  - we do not know the coercion here (ring/http have special handling of data, e.g. http-methods)

2) run coercion compiler for the model to merge the effective model
  - schema + malli = should work ok, spec = best effort

3) publish final schemas into compiled route data
2023-05-21 20:32:40 +03:00
Tommi Reiman
3f265888a4 cleanup 2023-05-21 20:16:45 +03:00
Tommi Reiman
550ea6da58 path-update 2023-05-21 20:13:43 +03:00
Tommi Reiman
4d0e40f135 ctrl.* is such test 2023-05-21 18:15:44 +03:00
Tommi Reiman
d45dd151b7 document meta-merge 2023-05-21 18:11:42 +03:00
Tommi Reiman
b3383b0396 0.7.3-alpha4 2023-05-17 18:23:05 +03:00
Joel Kaasinen
b56c15b64c fix: openapi malli parameter descriptions
... should come from the parameter type, not from the parent :map
2023-05-17 08:19:44 +03:00
Juho Teperi
0b6ed62738 Release 0.7.0-alpha3 2023-05-05 12:57:31 +03:00
Juho Teperi
5adc5ffba0 Compile reitit.Trie with Java 1.8 target 2023-05-05 12:56:02 +03:00