v0.18.0-M1
·
7153 commits
to master
since this release
Summary
The main features in this release:
- content negotiation support on server & client side
- data structure is reflected only in schemas, not in validators. Validators are much simpler now
- server interpreters are rewritten, and support two types of interceptors (request & endpoint interceptors). Some functionalities (logging, decode failure handling) are implemented as interceptors
- exceptions are handled and result in the 500 status code
Breaking changes
DecodeFailureHandler- minor changes in method signatures, the default one is nowDefaultDecodeFailureHandler.handlerLogRequestHandling->ServerLog- server options have been significantly refactored. To create custom options, use e.g.
AkkaServerOptions.customInterceptors - there's no single
streamBodymethod, instead there arestreamBinaryBody,streamTextBody,streamListBody,streamIterableBody SchemaTypes are not objects, but classes. If you specified the schema type manually, instead of e.g.SchemaType.SStringyou'll have to useSchemaType.SString()- rewritten
SchemaType.[SProduct|SCoproduct|SOpenProduct] Codecis no longer aMappingValidator.enum->Validator.derivedEnum- akka server interpreter: removal of
.toDirective - play server interpreter:
toRoute->toRoutes - deprecated
statusMappingin favor ofoneOfMapping
What’s Changed
- Rename statusMapping to oneOfMapping, docs (#1120) @adamw
- Implement request interceptors (#1118) @adamw
- Interceptors content negotiation (#1078) @kubinio123
- Add exception interceptors (#1109) @adamw
- [Minor] Add convenience method for empty outputs (#1106) @Qthunder
- feature: implement http4s client interpreter (#1080) @MichalPawlicki
- Move validation logic to schemas. Only schemas have structure, not validators (#1105) @adamw
- Yaml test cleanup (#1101) @kubinio123
- Implements #1065: Interceptors (#1089) @adamw
- Update derevo integration; (#1086) @FunFunFine
Dependency updates
- Update refined to 0.9.22 (#1114) @scala-steward
- Update cats-core, cats-laws to 2.5.0 (#1115) @scala-steward
- Update cats-effect to 2.4.1 (#1116) @scala-steward
- Update zio-interop-cats to 2.4.0.0 (#1112) @scala-steward
- Update mdoc_2.12, sbt-mdoc to 2.2.19 (#1113) @scala-steward
- Update http4s-blaze-server, http4s-circe, ... to 0.21.21 (#1110) @scala-steward
- Update cats-effect to 2.4.0 (#1095) @scala-steward
- Update jsoniter-scala-core, ... to 2.7.0 (#1108) @scala-steward
- Update upickle to 1.3.9 (#1103) @scala-steward
- Update client3:akka-http-backend, ... to 3.2.0 (#1102) @scala-steward
- Update scala-logging to 3.9.3 (#1098) @scala-steward
- Update upickle to 1.3.8 (#1094) @scala-steward
- Update sbt-twirl to 1.5.1 (#1093) @scala-steward
- Update derevo-core to 0.12.2 (#1092) @scala-steward
- Update tagging to 2.3.0 (#1090) @scala-steward
- Update play-ahc-ws-standalone to 2.1.3 (#1091) @scala-steward
- Update upickle to 1.3.7 (#1088) @scala-steward
- Update client3:akka-http-backend, ... to 3.1.9 (#1087) @scala-steward
- Update upickle to 1.3.4 (#1085) @scala-steward