Releases: netlogix/Netlogix.JsonApiOrg.AnnotationGenerics
9.1.0 - Introduce defaults to ExposeType annotation
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.
pageputs list requests into pagination mode with a default size.filtersupplies a baseline filter for repositories that require
at least one criterion.sortsets 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
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
finaland built around PHP 8 attributes with
constructor-promotedpublic readonlyproperties. -
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
apiVersionandreplacesdrive 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
What's Changed
Full Changelog: 8.1.0...8.1.1
8.1.0 - Avoid xand composite clause with only one child expression
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
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
What's Changed
Full Changelog: 8.0.0...8.0.1
8.0.0 - Flow 8.3 Requirement
BUGFIX: ExtraLazyPersistentCollection::matching() returns self
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
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
Objects can implement \Stringable or JsonApiIdentifier to provide the identifier.