Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Json Api Bundle Laravel Package

steffenbrem/json-api-bundle

Symfony bundle for building JSON:API-compliant APIs. Define resources and relationships, integrate Doctrine entities, and get filtering, sorting, pagination, includes, sparse fieldsets, links, validation, and standardized error responses out of the box.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The first thing to flag is a framing mismatch in the request: steffenbrem/json-api-bundle is a Symfony bundle, not a Laravel package. It hooks into Symfony's kernel, DI container, bundle registration, and config tree, and it delegates document serialization to JMS Serializer. If our target stack is Laravel, the bundle glue is unusable as-is; only the JSON:API-to-JMS metadata mapping is conceptually portable. If our stack is Symfony, the fit is only viable on the Symfony 2.x/3.x era the bundle was built for.

Integration feasibility. Low for a new build. The package emits JSON:API documents from Doctrine/JMS-annotated entities, which is genuinely useful plumbing, but it is a 2017-vintage artifact: no releases in ~8 years, 53 stars, zero dependents, and no evidence of CI or an active maintainer. Composer resolution against a modern PHP 8.2+/Symfony 6/7 dependency graph is unlikely without a fork. There is also no indication of JSON:API 1.1 coverage (the spec moved on after this release).

Technical risk. High, across every axis:

  • Abandonment — single maintainer, no commits, no security response path.
  • Dependency rot — pinned to old JMS Serializer majors; transitive CVEs will go unpatched.
  • Correctness — pre-1.1 spec semantics, so clients expecting modern sparse fieldsets, error objects, or relationship linkage may misbehave.
  • Data exposure — JSON:API serializes relationships and attributes broadly by default; a misconfigured JMS exclusion policy can leak fields. This is the failure mode most likely to reach production.
  • Bus factor 1 — we would inherit full ownership.

Key questions.

  1. What is the actual target framework — Laravel or Symfony? The brief and the package disagree, and that answer changes everything below.
  2. Is JSON:API compliance a hard requirement (external clients, published contract), or do we just need a resource serializer?
  3. If compliance is required, why this package over a maintained implementation (e.g., LaravelJsonApi, spatie/laravel-fractal, or api-platform on the Symfony side)?
  4. Who owns the fork, and is there budget for it?
  5. The 4.89 "opportunity" score most likely reflects whitespace in JSON:API tooling generally, not the merits of this specific package — we should not read it as a buy signal.

Integration Approach

Stack fit. Poor for Laravel, marginal for legacy Symfony. Recommend do not sequence this package into a build. Treat it as a reference implementation to read, not a dependency to install.

Migration path. This isn't a migration — it's a substitution decision. Three viable routes:

  • JSON:API compliance required, Laravel stack: adopt a maintained Laravel JSON:API library or API Platform if we move toward Symfony.
  • JSON:API compliance required, Symfony stack: API Platform is the maintained path; this bundle is a dead end.
  • No hard spec requirement: framework-native API Resources plus a thin serializer layer; cheaper, supported, and easier to hire for.

Compatibility. Expect PHP 5.6/7.x and Symfony 2.3–3.x era constraints with JMS Serializer 1.x. Verify with a throwaway composer require spike against our actual PHP/Symfony versions before spending any further time — that is a half-day gate, not a project.

Sequencing. (1) Confirm framework and whether JSON:API is contractual — one stakeholder conversation. (2) Two-day spike: attempt install on current stack; if it fails (likely), close the option. (3) If the spec is contractual, run a bake-off between two maintained libraries on a single representative resource. (4) Only then commit to an architecture. Do not let a 2017 bundle appear in a delivery plan.

Operational Impact

Maintenance. Effectively zero upstream. We would own patches, PHP/Symfony upgrades, and JMS Serializer major-version churn indefinitely. With zero dependents in the wild, there is no community patch pool to draw from.

Support. No vendor, no SLA, no responsive maintainer. Internal SME dependency on whoever learns the JMS metadata layer — a single point of failure on a team that may already be thin.

Scaling. JMS Serializer is metadata-driven and cached at warmup, so raw throughput is acceptable. The real scaling risk is JSON:API compound documents: relationship inclusion without disciplined eager loading produces N+1 queries and payload bloat. Sparse fieldsets help clients but shift complexity to server-side validation.

Failure modes. Ranked by likely impact: (1) data exposure via over-broad default serialization; (2) hard breaks on PHP/Symfony upgrades with no upstream fix; (3) Composer resolution deadlocks from stale JMS pins; (4) silent spec drift against client expectations; (5) unpatched transitive CVEs.

Ramp-up. JMS Serializer alone is a 1–2 week learning curve (metadata formats, exclusion strategies, groups). JSON:API concepts — sparse fieldsets, compound documents, linkage, error objects — add another 1–2 weeks. For a Laravel team already carrying a framework mismatch, budget 4+ weeks before first production endpoint, versus roughly one week on a maintained, framework-native library. That delta alone outweighs any reuse value this package offers.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel