Repository navigation
Releases
7.1.0 - Expose all exposable types from TypeMap
Exposable types can now be enumerated as a complete list, e.g. for
endpoint discovery or API documentation generation.
New: EnumerableExposableTypeMapInterface with getExposableTypes(),
returning a list. The default ExposableTypeMap
implements it.
The interface is separate from ExposableTypeMapInterface, so
existing custom type maps keep working unchanged. Consumers that
need enumeration should check for the new interface instead of
assuming it on every ExposableTypeMapInterface.
See #31.
7.0.0 - Introduce versioned ExposableType API
A single JSON-API type can now be exposed under multiple API versions
side-by-side. The internal array-based ExposableTypeMap configuration
is replaced by a typed ExposableType value object, named after the
ExposeType annotation already present in the AnnotationGenerics package.
BREAKING CHANGE: ExposableTypeMapInterface has been redesigned around
the new ExposableType value object and an explicit $apiVersion
parameter:
- getType() -> getExposableTypeByClassIdentifier()
- getClassName() -> getExposableTypeByTypeName($name, $apiVersion)
-> getExposableTypeByVersionedTypeName() - getClassNameForProperty() -> getPropertyType($name, $apiVersion, $property)
New: static ExposableTypeMapInterface::forceApiVersion() pins the
active version inside a callable, and the NEXT_VERSION = 'next'
constant marks types belonging to an unreleased version.
ResourceInformationInterface has been tightened with full PHP return
and parameter types; existing implementations need to add matching
signatures.
6.0.3 - Add meaningful Exception if no ResourceInformation was found
What's Changed
- feat: resourceNotFound exception by @bastiBepunkt in #27
New Contributors
- @bastiBepunkt made their first contribution in #27
Full Changelog: 6.0.2...6.0.3
6.0.2 - Ensure @var annotations also still work correctly
What's Changed
Full Changelog: 6.0.1...6.0.2
6.0.1 - Use ReflectionService to determine argument types
What's Changed
Full Changelog: 6.0.0...6.0.1
6.0.0 - Flow 8.3 Requirement
FEATURE: Add included status to MetaAwareResourceInformationInterface
5.0.0 Merge pull request #23 from netlogix/feature/included-status-in-MetaA…
BUGFIX: Use lowercase key in ExposableTypeMap::getClassNameForProperty()
Merge pull request #22 from netlogix/bugfix/lowercase-type-map BUGFIX: Use lowercase key in ExposableTypeMap::getClassNameForProperty()
BUGFIX: Relations can explicietly provide `null`
When data is POSTed, single object relations (of data or include) not
providing a set of type/id but null are perflectly valid, just as
this is a valid result to a GET request.
Expose BatchScope as public API
The "batch scope" is used to track newly created objects within a
single POST request, added as "included" in the POST body.
They are automatically detected if an internal PersistentObjectConverter
is used to create entities.
If custom type converters are used to create value objects where
relationships aren't covered by flow defaults, those custom type
converters need at least read access to retrieve relationships.