v5.0.0
New features and enhancements
In addition to what's listed at v5.0.0-pre1, this release adds full support for resource inheritance. In short, this means you can define (abstract) base resource classes and perform various operations against their endpoints. Sparse fieldsets, includes, sorting and filtering were adapted to understand them, among which is the new isType()
filter function. When using post/patch/delete in a type hierarchy, extra database queries are executed to provide the best possible experience for writing custom business logic in resource definitions. For details, see documentation at https://www.jsonapi.net/usage/resources/inheritance.html and the PR description. Additionally, this release improves serialization performance and makes resource graph lookups faster.
Note: See our updated documentation, as well as updated examples in our codebase.
Upgrading from v4 instead? Be sure to check out our migration guide.
Breaking changes
Aside from the breaking changes listed at v5.0.0-pre1, we had to slightly adapt some signatures in resource service/repository/definition interfaces to support resource inheritance. And we fixed the bug where we forgot to call into IResourceDefinition.OnPrepareWrite
from a delete to-many relationship request.
Merged PRs
- Fixed: do not auto-register abstract base classes and interfaces by @bart-degreed in b17f8f5
- Added example that uses a different database per tenant by @bart-degreed in #1135
- Added workaround for bug in EF Core 6.0.2 by @bart-degreed in #1139
- Bugfix: hide Self link in included resources for missing controller by @bart-degreed in #1141
- Replaced references to Error in docs, which was renamed to ErrorObject by @bart-degreed in #1143
Full Changelog: v4.2.0...v5.0.0