Skip to content

Releases

7.1.0 - Expose all exposable types from TypeMap

Choose a tag to compare

@stephanschuler stephanschuler released this 03 Nov 12:58
129d047

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

Choose a tag to compare

@stephanschuler stephanschuler released this 28 May 23:41
cfed548

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

Choose a tag to compare

@paxuclus paxuclus released this 21 Feb 09:16
0e1ff4f

What's Changed

New Contributors

Full Changelog: 6.0.2...6.0.3

6.0.2 - Ensure @var annotations also still work correctly

Choose a tag to compare

@paxuclus paxuclus released this 05 Jul 12:08
54c210b

What's Changed

  • fix: Ensure var annotations also still work correctly for property t… by @paxuclus in #26

Full Changelog: 6.0.1...6.0.2

6.0.1 - Use ReflectionService to determine argument types

Choose a tag to compare

@paxuclus paxuclus released this 26 Feb 15:29
c68c3d0

What's Changed

  • fix: Use ReflectionService to determine argument types by @paxuclus in #25

Full Changelog: 6.0.0...6.0.1

6.0.0 - Flow 8.3 Requirement

Choose a tag to compare

@paxuclus paxuclus released this 12 Feb 14:00
8d03460

What's Changed

Full Changelog: 5.0.0...6.0.0

FEATURE: Add included status to MetaAwareResourceInformationInterface

Choose a tag to compare

@saschanowak saschanowak released this 25 Nov 19:08
8be8958
5.0.0

Merge pull request #23 from netlogix/feature/included-status-in-MetaA…

BUGFIX: Use lowercase key in ExposableTypeMap::getClassNameForProperty()

Choose a tag to compare

@stephanschuler stephanschuler released this 13 Jan 15:12
fa1cbbd
Merge pull request #22 from netlogix/bugfix/lowercase-type-map

BUGFIX: Use lowercase key in ExposableTypeMap::getClassNameForProperty()

BUGFIX: Relations can explicietly provide `null`

Choose a tag to compare

@stephanschuler stephanschuler released this 28 Aug 15:14
a827819

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

Choose a tag to compare

@stephanschuler stephanschuler released this 15 Aug 11:22
d833eb5

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.