Skip to content

v4.0.0

Compare
Choose a tag to compare
@bart-degreed bart-degreed released this 14 Dec 17:35
· 1145 commits to master since this release
7b37eeb

Introduction

We're back! Almost 2 years since the last stable release, a lot has changed.
The original author was no longer able to maintain the project.
Long story short: @bart-degreed and @maurei have taken over and are fully committed to bringing this project to the next level.

Are you building an API from scratch? Our documentation is the place to get started.
Upgrading from v3 instead? Be sure to check out our migration guide.

The release notes of earlier pre-release v4 versions contain detailed lists of changes since v3. To summarize, these are the highlights:

  • Works with .NET Core 3.1/5 and Entity Framework Core 3.1/5
  • New advanced filtering capabilities (old syntax is still available)
  • Enhanced support for usage of the existing query string parameters
  • Flexible annotations to control what is permitted per resource attribute
  • Increased compliance with the JSON:API specification
  • Improved handling of create/update/delete of resources and relationships
  • Added support for POST and DELETE on relationship endpoints
  • Change tracking on POST/PATCH requests reduces the size of response messages
  • Vastly improved request validation with clear error messages
  • Built for scale: default page size, options to control maximum page size and number, maximum include depth
  • Improved support for custom logging and error handling
  • Eager Loading enables to unconditionally include unexposed related entities
  • A limited set of services can now be injected in resources
  • Up-to-date documentation, including auto-generated examples
  • SourceLink enables to step into our NuGet library during debug by downloading sources from GitHub
  • Well over a thousand automated tests (mostly integration)
  • Lots and lots of bugfixes

Removed features:

  • Entity-Resource separation (motivation here).
  • Bulk operations, because json:api has retracted its experimental specification.
    As a replacement, they recently finished Atomic Operations, which we intend to implement in one of the next versions.

Finally, a big thanks to all community contributors!

Release notes

New features

(none)

Breaking changes

  • Changed the usage of fields query string parameter to be json:api spec compliant. It now requires a resource type between brackets instead of a relationship path. The value can contain both attributes and relationships.

Closed issues

  • Small refactorings (#893)
  • Changes usage of fields parameter to be json:api spec compliant (#904)
  • Fixed: hide duplicate stacktrace for ModelState errors (#905)
  • Fixed: write content type on invalid Accept headers (#903)
  • Wrong totalResourceCount when using resource definition filter (#881)
  • Minor fixes in content negotiation (#897)
  • Refactored JsonApiException to contain a list of errors (#894)