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 Api Laravel Package

wizards/rest-api

wizards/rest-api is a Laravel package for building RESTful APIs, offering a structured foundation for routes, controllers, and JSON responses so you can expose application data and resources with less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package presents itself as "a set of services to help you create beautiful REST APIs," which places it squarely in the HTTP presentation layer — response envelopes, resource transformation, status/error formatting, possibly pagination and versioning helpers. That is a thin horizontal slice, not an architectural commitment. It can sit alongside Laravel's router and Eloquent without dictating domain design, which is the most favorable reading of its fit. The unfavorable reading: if those "services" are implemented as base controllers or traits that application controllers must extend, it becomes an inheritance anchor that is expensive to remove later. That distinction — composition vs. inheritance — is the single most important thing to verify before any adoption decision.

Integration feasibility. Mechanically simple: a Composer require plus, if it follows Laravel conventions, package auto-discovery. The real gate is version constraint compatibility. Last release was 2021-01-17, which puts it in the Laravel 8 / PHP 7.4–8.0 window. On a current Laravel 10/11/12 codebase, the illuminate/* constraints will almost certainly block installation, and the transitive dependency set from that era is itself a risk. Expect to either pin the surrounding stack backwards (unacceptable) or fork and re-constrain (feasible, but then you own it).

Technical risk. High, driven by three compounding signals rather than any specific defect:

  • Abandonment. Four-plus years without a release means no PHP 8.2+ deprecation fixes, no framework-version bumps, and no security response path. A package on the request/response path has no CVE feed and no advisory channel here.
  • No adoption evidence. Zero dependents and three stars means essentially no one is running this in production. There is no field-tested edge-case knowledge, no Stack Overflow corpus, and no third-party bug reports to learn from. The internal health score of 0.205 is consistent with that picture.
  • Single-vendor, likely single-maintainer. Bus factor near one, with no visible governance or release cadence to inherit.

Key questions to resolve before any decision.

  1. Is the usage model composition (middleware, formatters, helpers) or inheritance (base controllers/traits)? What is the removal cost?
  2. What are the declared PHP and Laravel constraints, and does it install cleanly against our target versions?
  3. Does it duplicate Laravel first-party JsonResource / Route::apiResource / Sanctum, or add something genuinely absent?
  4. Test coverage and CI status; is the test suite runnable on a modern PHP?
  5. License terms — does forking and internally maintaining it create any obligation?
  6. Are there open, unanswered issues describing data-loss or serialization bugs?

Integration Approach

Stack fit. The honest framing for the product team: this package's problem space has been absorbed by the framework. Laravel's API Resources, implicit route-model binding, Route::apiResource, consistent exception rendering via the handler, and Sanctum cover the majority of what a 2021-era "REST API services" package was selling. That does not make the package worthless — it may offer a more opinionated envelope or less boilerplate — but it means we are buying convenience, not capability. Convenience from an unmaintained dependency is a bad trade unless the boilerplate reduction is measured and large.

Migration path. If we proceed, adopt it as a replaceable adapter, never as a foundation:

  • Confine all usage to a single response-formatting layer behind our own interface, so the package can be swapped for native JsonResource classes without touching controllers or domain code.
  • Forbid application controllers from extending anything the package ships; if it requires that, stop and re-evaluate.
  • Keep the serialization contract pinned by tests we own, not tests the package ships.

Compatibility. Run composer why-not wizards/rest-api against the target framework before writing any code, and audit the resolved dependency tree for other abandoned packages pulled in transitively. Treat any required downgrade of framework or PHP as an automatic no.

Sequencing.

  1. Spike (2–3 days): install in a throwaway branch on the real target stack, build one representative endpoint end-to-end.
  2. Parallel build: implement the same endpoint with native Laravel API Resources.
  3. Compare: lines of code, response-shape controllability, error-path behavior, testability.
  4. Decision gate: adopt only if the spike wins clearly and the fork-and-own cost is funded. Otherwise close it out and standardize on first-party tooling.
  5. If adopted: fork to our org, re-constrain dependencies, add CI, and publish internally — before any production traffic.

Operational Impact

Maintenance. The realistic model is fork-and-own from day one, not "use the package." That means assigning a named owner, budgeting recurring hours for framework-upgrade compatibility work, and accepting that upstream will not absorb it. The maintenance cost is small in absolute terms — the surface is narrow — but it is nonzero forever, and it lands on whoever owns the API layer.

Support. There is no vendor, no SLA, and effectively no community. With three stars, an issue filed today should be assumed never to receive a response. Internal engineers are the only support tier. This is acceptable for an internal tool, harder to justify for anything customer-facing or audited.

Scaling. As a response-formatting layer, it is unlikely to be a throughput bottleneck; the risk is not performance but correctness drift. Watch specifically for any serialization helper that lazy-loads relations, which is a classic N+1 vector, and confirm behavior under large collections and pagination. No load-testing evidence exists, so we would be establishing that baseline ourselves.

Failure modes. In rough order of likelihood:

  • Silent contract drift after a framework upgrade changes model-to-array behavior, altering our public JSON without a failing test.
  • Blocked upgrade path — the package pins us to an EOL framework version, and removing it becomes a multi-sprint refactor under deadline pressure.
  • Unpatched vulnerability with no advisory channel; discovery happens via external scanning, not notification.
  • Maintainer disappearance is already effectively realized; this is not a future risk.

Ramp-up. Low technical learning curve — the API surface is small and the patterns are conventional Laravel. The hidden cost is verification rather than learning: engineers cannot trust documentation or community precedent here, so every behavior must be read out of the source or proven with a test. Estimate a few days of engineering to reach confident, productive use, plus the one-time spike above.

Recommendation. Treat this as a do-not-adopt by default. The functional overlap with Laravel first-party tooling is high, the abandonment and zero-adoption signals are unambiguous, and the only defensible case is a narrow, adapter-wrapped convenience win on a legacy Laravel 8 codebase we cannot upgrade. Absent that specific condition, the TPM call is to standardize on Laravel's native API Resources and revisit only if the spike shows a decisive, quantified reduction in boilerplate.

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.
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
noith/settings