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

Rest Client Sdk Bundle Laravel Package

mapado/rest-client-sdk-bundle

Symfony bundle that integrates the Mapado REST Client SDK, registering API client services and configuration in the container so Symfony apps can inject and use Mapado REST clients with less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — The package is a Symfony Bundle, and the request frames this as a Laravel evaluation, so the first TPM-level finding is a scope mismatch. Symfony bundles are booted by the Symfony Kernel; Laravel's package discovery reads extra.laravel.providers and its own container. This bundle will not auto-register and cannot be sensibly shimmed. The valuable asset is the underlying mapado/rest-client-sdk, which is framework-agnostic PHP. The capability is portable; the wiring is not. A TPM should treat the bundle as a reference implementation of the DI glue, not as an adoptable dependency.

Integration feasibility — Viable with a re-implementation of roughly 100 lines of container wiring: bind the SDK's client and entity manager as Laravel singletons, load mapping config from config/services.php-style config, and expose a repository-per-resource API. This is a days-to-one-sprint effort, not a multi-quarter program. The alternative — installing the bundle — is not supported and should be rejected explicitly so it does not quietly re-enter scope.

Technical risk — The dominant risk is abandonment, not defect density. Four stars, zero dependents, and no visible maintenance cadence mean there is no community surface, no downstream battle-testing, and no upstream security responsiveness. Expect stale Composer constraints (Symfony 3.x/4.x era, transitive JMS Serializer and Guzzle pins) that may not resolve cleanly on PHP 8.2+ / Laravel 10–11. The bundle adds no capability absent from the SDK, so its marginal value is convenience we would rewrite anyway. Secondary risks are schema drift against the vendor's JSON descriptor and deserialization brittleness on unexpected fields.

Key questions —

  • How stable is the vendor API's JSON descriptor? Generation only pays off if the schema is stable; if it drifts, hand-written clients with contract tests are cheaper.
  • Which mapado/rest-client-sdk version does the bundle target, and does it support our PHP runtime and Guzzle/Symfony component versions?
  • Is there a fork we can pin and own, and who signs up to maintain it?
  • Is build-time generation acceptable to the team? (Build-time is strongly preferred over runtime.)
  • Who owns generated code — application team or platform team?
  • What is the realistic endpoint count over the next 12 months? Below three or four, the boilerplate savings never compound.

Integration Approach

Stack fit — Laravel consumes Symfony components (HttpFoundation, Console, Routing), not bundles. Treat the SDK as a plain library behind a hand-written gateway interface, keep SDK types out of controllers, jobs, and events, and let call sites depend only on our abstraction. This preserves the option to swap to Symfony HttpClient or a generated Jane PHP client later without touching call sites.

Migration path —

  1. Pull in mapado/rest-client-sdk only; do not install the bundle.
  2. Generate client classes at build time from the vendor's JSON descriptor into a dedicated namespace (e.g. App\Generated\VendorApi), committed or produced reproducibly in CI.
  3. Wrap the generated client in a hand-written gateway; map SDK exceptions to domain errors at the boundary.
  4. Mirror the bundle's config shape in Laravel config so a future swap is mechanical, not a rewrite.

Compatibility — Validate Composer constraints against our PHP, Guzzle, and serializer versions before committing to a plan. Expect to loosen constraints or vendor a fork. A lockfile-pinned fork we control is materially safer than tracking an abandoned upstream, and any PHP or Laravel upgrade should trigger re-validation of the generation pipeline.

Sequencing —

  1. Spike (one week): generate a client for one endpoint family, prove serialization against a sandbox.
  2. Harden (one sprint): gateway interface, config, contract tests, error mapping, observability.
  3. Pilot: one endpoint family in production behind a feature flag.
  4. Expand only after contract tests prove the pipeline is reproducible in CI.

Do not start with the bundle; starting there introduces a dependency we would remove within a sprint.

Operational Impact

Maintenance — We inherit ownership on day one. There is no vendor support and no upstream advisory channel. Budget a named maintainer, a quarterly dependency audit, and a documented fork point. Generated code must appear as a reviewable diff in CI, never as a runtime surprise. Assume we will eventually fork and patch the SDK itself.

Support — None upstream. Treat this as internal code with an internal incident path. Document clearly, in-repo, that this originated from an unmaintained third party and what our fork boundary is.

Scaling — The client is stateless and Guzzle-based, so it scales horizontally with the app. Watch per-request deserialization cost on large payloads, connection reuse and timeouts, and any boot-time metadata parsing (cache it). Retries and backoff are not provided and must be added explicitly; without them, vendor degradation cascades into our latency budget.

Failure modes —

  • Schema drift: the vendor changes its API and the generated client is silently wrong. Mitigate with scheduled contract tests against a sandbox.
  • Deserialization errors on newly added or unexpected fields.
  • Missing timeouts/retries producing cascading latency under vendor impairment.
  • Abandoned dependency blocking a PHP or Laravel upgrade — the most probable long-term failure and the one to plan for.
  • False architectural assumption: a future engineer sees "Bundle" in a discussion thread and expects automatic Symfony-style wiring that does not exist in Laravel. Correct this in the ADR.

Ramp-up — Low for consuming generated DTOs and the gateway (familiar PHP/Guzzle patterns). Moderate for the generation toolchain and its JSON descriptor format, the only genuinely novel surface. Estimate two engineers, roughly one sprint to first endpoint in production plus one additional sprint to harden, monitor, and document the fork. Recommend framing this to stakeholders as a low-cost internal accelerator with a fork-and-own fallback, not a strategic platform dependency; the decision to fund it should be gated on a demonstrated endpoint count that makes the boilerplate savings compound.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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