Skip to content

Releases: json-api-dotnet/JsonApiDotNetCore

v3.0.0-beta5

05 Oct 00:48
7efb3c5
Compare
Choose a tag to compare
v3.0.0-beta5 Pre-release
Pre-release

Non-Breaking Changes

[Attr] // → "compound-name"
public string CompoundName { get; set; }

builder.AddResource<TestResource>();  // → "test-resources"
  • API for easy service/repo registration (#384 via #409)
services.AddResourceService<FooService>();
  • ResourceDefinition improvements: Custom filters and default sort (#402 via #409)
public class FooResource : ResourceDefinition<Foo>
{
  protected override QueryFilters GetQueryFilters() => new QueryFilters { 
        { "key1", (query, value) => query.Where(x => x == value) },
        { "key2", (query, value) => query.Where(x => x != value) },
   };

  public override PropertySortOrder<Foo> GetDefaultSortOrder() => new PropertySortOrder { 
     (foo => foo.Bar, SortDirection.Ascending),
     (foo => foo.Baz, SortDirection.Descending),
  }
}
  • Many-to-Many support via [HasManyThrough] (#151 via #419)
public class Article : Identifiable
{
    [NotMapped] // ← tells EF to ignore this property
    [HasManyThrough(nameof(ArticleTags))] // ← tells JADNC to use this as an alias to ArticleTags.Tags
    public List<Tag> Tags { get; set; }

    // this is the EF join relationship
    public List<ArticleTag> ArticleTags { get; set; }
}

Breaking Changes

  • DocumentData replaced by ResourceObject. Thanks @btecu! (#400 via #403)

v3.0.0-beta4

04 Sep 04:38
468b761
Compare
Choose a tag to compare
v3.0.0-beta4 Pre-release
Pre-release

#382 via #395: Identifiable causes exceptions in Post
#39 via #378: Deeply Nested Inclusions. Thanks @NullVoxPopuli for all the help landing this!

v3.0.0-beta3

04 Sep 03:46
c1bf919
Compare
Choose a tag to compare
v3.0.0-beta3 Pre-release
Pre-release

#388 Exact Error Codes for Error Collections thanks @rtablada !
#387 Additional filter operations: isnull and isnotnull thanks @NullVoxPopuli !

Usage

This change introduces two new filter operators isnull and isnotnull. Like all other operators, it is appended by a colon (:), however, any value provided after the colon is ignored.

GET /api/v1/todo-items?filter[updated-date]=isnull: HTTP/1.1
Accept: application/vnd.api+json

v2.5.2

30 Aug 04:50
Compare
Choose a tag to compare

#388: Exact Error Codes for Error Collections, back-ported by release/2.5.2. Thanks @rtablada !

v3.0.0-beta2

13 Aug 03:14
5ea9a17
Compare
Choose a tag to compare
v3.0.0-beta2 Pre-release
Pre-release

#377: Fix TypeLocator bug that results in app crashing at startup

v3.0.0-beta1

12 Aug 05:35
d5ee796
Compare
Choose a tag to compare
v3.0.0-beta1 Pre-release
Pre-release

#241 via #376 Auto Resource/Service Discovery

v2.5.1

11 Aug 04:53
a9c7ff9
Compare
Choose a tag to compare

#343 via #373 reload relationships from database if included during POST
#362 via #374 improve error message for null HttpContext
#313 via #375 do not return 409 for generic InvalidCastException

v2.5.0

08 Aug 20:09
262d341
Compare
Choose a tag to compare

Thanks @rtablada !
#367 via #369 Make Error.Source an object instead of string
#370 Add GetPublicAttributeName to Context Graph
#371 Set Error.Source when constructing validation errors

v2.4.0

01 Aug 05:28
9c54535
Compare
Choose a tag to compare

No functional changes after v2.4.0-beta4. Below is a summary of all the changes released.

#360 via #361: Added nin (not-in) filter. Thanks @milosloub!
#354 via #355: Fix bug introduced in v2.4.0-beta3
#112 via #344, #352: Entity and Resource separation. Thanks @roblankey !!
#339 via #345: fix service scope registrations (Cannot consume scoped service IGenericProcessorFactory from singleton IOperationProcessorResolver)
#349 via #348: fix(Deserializer): deserialize independent HasOne pointers
#322 via #333 fix(relationship pointers): Can't create entity with two HasOne attributes pointing to same entity
#335 / #336 various operations fixes

v2.4.0-beta4

26 Jul 05:45
6d2ccf5
Compare
Choose a tag to compare
v2.4.0-beta4 Pre-release
Pre-release

#354 via #355: Fix bug introduced in v2.4.0-beta3