- How do I install f9webltd/laravel-api-response-helpers?
- Run composer require f9webltd/laravel-api-response-helpers, then use the F9Web\ApiResponseHelpers trait in the controller or base controller that returns API responses. There is no service provider or config file to publish, so installation is just Composer plus the use statement.
- Which Laravel and PHP versions are supported by laravel-api-response-helpers?
- The current release README lists PHP ^8.2 with Laravel ^12.0 or ^13.0. Legacy package majors cover older Laravel and PHP combinations, such as Laravel 8-10 with PHP 8.0 and Laravel 6-7 with PHP 7.4. Mixed-version services may need different package majors, so pin per application and verify the exact release against the README before upgrading.
- How do I return a standard success response from a Laravel controller?
- Use the ApiResponseHelpers trait in your controller or a base controller, then return $this->respondWithSuccess() from the action. It returns an Illuminate\Http\JsonResponse with HTTP 200 and a default payload of ['success' => true]. You can change that default with setDefaultSuccessResponse() if your API contract requires a different envelope.
- Does laravel-api-response-helpers replace Laravel API Resources?
- No. It wraps responses rather than transforming models, and it accepts arrays, Arrayable, and JsonSerializable values, so it can return data prepared by API Resources. Use API Resources for shaping resources and this trait for consistent status codes and envelopes.
- Which HTTP status codes do the response helper methods cover?
- The documented helpers map to respondWithSuccess for 200, respondCreated for 201, respondNoContent for 204, respondError for 400, respondUnAuthenticated for 401, respondForbidden for 403, and respondNotFound for 404. That covers common success and client-error cases but not every status code. Check the method list for your pinned version before relying on broader coverage.
- Does laravel-api-response-helpers handle 422 validation errors, 429 rate limits, or 500 errors?
- The documented method list focuses on success, created, no content, and common 4xx errors such as 400, 401, 403, and 404. There is no documented helper for 422 validation failures, 429 rate limiting, or 5xx responses, so those remain hand-rolled unless you extend the trait locally. The error helpers also do not expose a single configurable envelope, and respondNotFound uniquely accepts a key parameter. Release notes for old versions mention a respondFailedValidation method, so verify the source for the version you pin rather than assuming coverage.
- Can I adopt laravel-api-response-helpers incrementally without rewriting every endpoint?
- Yes. The trait only changes responses where you call its methods, so existing response()->json([...]) calls can coexist in the same controller indefinitely. A practical path is to add the trait to a base API controller, pilot one endpoint group, then migrate domain by domain and lock the response shape with contract tests.
- How do I customize the default success response payload?
- Call setDefaultSuccessResponse() with the array you want respondWithSuccess() to return by default. If you do not override it, respondWithSuccess() emits ['success' => true]. Set the house default in a base controller constructor so every controller inherits the same contract.
- Is respondNoContent safe to use for a standards-compliant 204 response?
- respondNoContent returns a 204, but it accepts optional data to support legacy projects. A 204 response with a body is non-compliant and can confuse proxies or CDNs, so new code should never pass data to it. Treat the optional body as a transition aid and document that policy for your team.
- Is laravel-api-response-helpers production-ready and worth using?
- It is a small, low-coupling trait that returns Illuminate\Http\JsonResponse, with no service provider, config, middleware, or container bindings to manage. That makes adoption low risk and easy to reverse, but it standardizes only the methods it provides, so you still need a house contract for validation and server errors. It can be a good fit if you want a lightweight base-controller helper; otherwise plain response()->json() calls or Laravel API Resources may be enough.