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

Symfony Drupal Jsonapi Laravel Package

roensby/symfony-drupal-jsonapi

A Symfony integration for Drupal's JSON:API, providing services and tools to query and consume Drupal content endpoints cleanly. Simplifies fetching, mapping, and working with JSON:API resources in Symfony applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Decoupled / headless CMS evaluation: Informs whether a Drupal backend can be consumed cleanly by a PHP application, which is central to any "keep Drupal as content hub, build a custom frontend/app" decision.
  • Build vs. buy for content integration: Gives a concrete estimate of how much custom JSON:API plumbing (HTTP client, serialization, entity hydration, pagination, error handling) you would otherwise write and maintain yourself.
  • Roadmap input for content-source integrations: Useful when planning features like multi-site content aggregation, editorial syndication, internal admin tools, or migration tooling that read Drupal content.
  • CMS migration and exit-strategy planning: Helps assess how tightly a product would be coupled to Drupal's JSON:API shape, and whether an abstraction layer is needed before committing.
  • Prototype feasibility: A low-cost way to prove a decoupled Drupal + PHP/Symfony integration in a spike before allocating roadmap capacity.

When to Consider This Package

Consider it when:

  • Your content backend is Drupal 8/9/10 with JSON:API enabled and stable.
  • Your consuming application is Symfony-based, or your team is comfortable with Symfony HTTP Client and Serializer conventions.
  • You need typed entity mapping (nodes, taxonomy terms, users, paragraphs) rather than raw JSON handling.
  • You are in a discovery or spike phase and want to validate integration quickly.
  • You can wrap the client behind your own interface so it is replaceable.

Look elsewhere when:

  • You need a Laravel-native integration (service provider, config publishing, Eloquent-style ergonomics); this package is Symfony-oriented and would require manual wiring.
  • Maturity and support matter: zero stars, zero dependents, and a score of 0 indicate an unproven package with no community validation or visible maintenance signal. Do not put it on a critical path without a fallback.
  • You need advanced JSON:API features (complex filtering, includes, sparse fieldsets, authentication flows) beyond what the package documents.
  • You require long-term support, security patching, or vendor accountability.
  • Your backend is not Drupal, or you would be better served by GraphQL, the official JSON:API spec tooling, or a thin Guzzle/HTTP client you control.
  • Your team would spend more time learning Symfony idioms than writing the ~200 lines of integration code itself.

How to Pitch It (Stakeholders)

To executives: This is a small, free open-source library that could shorten a decoupled-Drupal pilot from weeks to days. It carries real vendor risk — no stars, no dependents, no visible maintenance — so the recommendation is a timeboxed technical spike, not a production commitment. Cost of evaluation is low; cost of unmanaged dependency is high.

To engineering: It is a Composer-installable Symfony JSON:API client with Drupal entity support, which saves boilerplate around HTTP transport, deserialization, and entity hydration. Because it is Symfony-flavored and unproven, we should (1) spike it against our actual Drupal endpoint, (2) wrap it behind an internal ContentRepository interface, and (3) keep a Guzzle-based fallback so swapping it out is a one-class change. Treat it as an accelerator, not a foundation.

Recommendation: Proceed with a 3–5 day evaluation spike, gated on documented maintenance status and license review; adopt only behind an abstraction layer.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource