Skip to content

Releases: netlogix/Netlogix.JsonApiOrg.AnnotationGenerics

9.1.0 - Introduce defaults to ExposeType annotation

09 Jun 06:53
8a20568

Choose a tag to compare

Each resource type can declare defaults for the list-action arguments
page, filter, and sort. Defaults fill any slot the client did
not provide; client values always win.

  • page puts list requests into pagination mode with a default size.
  • filter supplies a baseline filter for repositories that require
    at least one criterion.
  • sort sets a deterministic ordering.

Nested and dot-path notation are accepted and may be mixed:

    #[ExposeType(defaults: [
        'page'        => ['size' => 250],
        'filter.name' => 'sv',
    ])]

9.0.0 - Versioned API endpoints and renamed ExposeType arguments

28 May 23:47
adb4766

Choose a tag to compare

Couple resource configuration to an explicit api version: a single
typeName can now be exposed multiple times under different apiVersion
strings, and the endpoint discovery, generic model controller and
write paths all honor that. Versioned type names like
"package/command@v1" are accepted in POST bodies; unversioned type
names work inside versioned URLs.

Requires netlogix/jsonapiorg ^7.0 for the matching ExposableType
support.

BREAKING CHANGE: ExposeType has been reshaped:

  • It is now final and built around PHP 8 attributes with
    constructor-promoted public readonly properties.

  • The infrastructure-side arguments have been prefixed with
    "request" to separate them from the domain-side ones:

    packageKey -> requestPackageKey
    controllerName -> requestControllerName
    subPackageKey -> requestSubPackageKey
    actionName -> requestActionName
    argumentName -> requestArgumentName

  • Two new properties apiVersion and replaces drive the
    versioning behaviour.

BREAKING CHANGE: The endpoint discovery route argument changed from
{packageKey} to {apiVersion} (accepting "all", "next" or a concrete
version); existing route configurations need to be updated.

BREAKING CHANGE: The internal Configuration array has been replaced by
a typed Configuration object; any code consuming the previous array
shape needs to be adjusted.

8.1.1 - Fetch property type from reflection if no var annotation is present

06 Mar 13:12
31ced82

Choose a tag to compare

What's Changed

  • fix: Fetch property type from reflection if no var annotation is present by @paxuclus in #44

Full Changelog: 8.1.0...8.1.1

8.1.0 - Avoid xand composite clause with only one child expression

03 Sep 16:52
87ae772

Choose a tag to compare

The extra lazy collection no longer wrap its where clause in XAND
expressions for every subsequent "getCriteria()".

8.0.2 - Fix Uploaded Resources and some PHP 8.3 issues

12 Jul 08:46
7a09d4b

Choose a tag to compare

What's Changed

  • fix: Remove invalid semicolon from dummy object serialized string by @paxuclus in #42
  • fix: Map uploaded resources into request body by @paxuclus in #41

Full Changelog: 8.0.1...8.0.2

8.0.1 - Properly clone request arguments

23 Feb 14:35
b668a97

Choose a tag to compare

What's Changed

Full Changelog: 8.0.0...8.0.1

8.0.0 - Flow 8.3 Requirement

12 Feb 14:06
9c6cbc9

Choose a tag to compare

What's Changed

Full Changelog: 7.5.2...8.0.0

BUGFIX: ExtraLazyPersistentCollection::matching() returns self

27 Jul 15:22
e7de67f

Choose a tag to compare

The concept of extralazy persistent collections is being chainable
through multiple calls of "matching", narrowing down the result set
with each step. This means ExtraLazyPersistentCollection::matching()
returns another ExtraLazyPersistentCollection, not a plain Collection
like parent::matching() does.

7.5.1 - BUGFIX: Remove invalid assert

27 Oct 15:39
46605f0

Choose a tag to compare

What's Changed

  • BUGFIX: Remove invalid assert by @nlx-lars in #36
  • BUGFIX: Remove replace for self in composer.json by @nlx-lars in #37

Full Changelog: 7.5.0...7.5.1

FEATURE: Allow value objects as identifier

16 Jun 07:11
bc0f1e1

Choose a tag to compare

Objects can implement \Stringable or JsonApiIdentifier to provide the identifier.