mtarld/api-platform-ms-bundle
A Symfony bundle that adapts API Platform for microservice architectures, letting resources split across services be referenced and fetched over HTTP while preserving API Platform’s resource, serialization, and documentation workflow.
What changed in v1.2.0: a single dependency-compatibility change — Signify support for API Platform ^4.0 and Symfony ^7.0 (PR #90). No new features, no API surface changes, no documented deprecations. This is a maintenance release that keeps the bundle aligned with the two current upstream majors.
Architecture fit: Poor for a Laravel-first estate. Despite the "Laravel/PHP package" framing, this is a Symfony bundle (mtarld/api-platform-ms-bundle) built on API Platform's bundle/DI conventions. There is no Laravel service provider, no config/*.php publishable config, and no Illuminate surface. It is only directly consumable by Symfony applications that already run API Platform. In a Laravel codebase the realistic adoption unit is the underlying Signify signing library, not this bundle — and even then only if we are standardising HTTP message signing between services.
Technical risk (ranked):
^3.x / Symfony ^6.4 constraints were retained. Read as an addition, it is a safe widening; read as a replacement, it is a de-facto breaking change shipped under a minor version. This must be confirmed from composer.json before any pin.Key questions:
Stack fit: Not a Laravel integration. Treat it as a Symfony-only component. If our platform is Laravel, the correct decision is do not integrate the bundle; evaluate Signify standalone only if we have a cross-service signing requirement, and expect to write the Laravel middleware ourselves (a service provider, a config file, and a verification middleware — roughly a few days of work, none of it provided by this package).
Migration path: If any Symfony 6.4 / API Platform 3 service exists, v1.2.0 is the intended upgrade target for the forthcoming Symfony 7 move. Sequence the framework upgrade first, then this bundle — not the reverse. Where a service is pinned to API Platform 3.x, verify the retained constraint before bumping; if the old constraints were dropped, stay on v1.1.0 and plan the upgrade as a coordinated change.
Compatibility checks before adoption:
composer why-not against the target app to confirm PHP/Symfony/API Platform resolution.Sequencing:
Maintenance: Low code surface, Composer-managed, so routine upkeep is small. The real cost is cadence-tracking: every API Platform major (roughly annual) forces a dependency review, and we have no upstream influence. Budget a named owner and a recurring review slot rather than an ad-hoc "bump when it breaks" habit.
Support: Community-only, no vendor SLA, no commercial backing. For anything in the request-authentication path this is the dominant risk — a signing bug is an outage, not a bug. Compensate with an internal fork-or-pin policy and a documented rollback to the last known-good version.
Scaling: The bundle is not the bottleneck; key distribution is. Signing adds per-request CPU overhead (asymmetric crypto is not free — measure it on the p99 path before enforcing). Verification cost multiplies with call fan-out in a microservice mesh. Key publication/rotation is the operationally expensive part, and this release says nothing about it.
Failure modes to plan for:
Ramp-up: Small. The bundle's configuration is conventional Symfony. The real ramp-up cost is team familiarity with Symfony bundle/DI conventions if we are a Laravel shop, plus the domain knowledge of signing/key lifecycle. Estimate one to two days to integrate in a Symfony service already on API Platform; a week or more if we are building the equivalent behaviour ourselves in Laravel, which is the likely outcome.
Recommendation: No action on the basis of v1.2.0 alone. It is a routine compatibility release for a package that does not fit a Laravel stack. Re-open only if (a) we onboard Symfony 7 / API Platform 4 services, or (b) we adopt Signify as a cross-service signing standard — in which case confirm the API Platform 3.x constraint retention and the Signify key-lifecycle story first.
How can I help you explore Laravel packages today?