sociolink/api-resource-bundle
A Laravel package that bundles reusable API resource classes and helpers for building consistent JSON API endpoints. It streamlines serialization, relationships, and response formatting, helping you expose Eloquent models through clean, maintainable resource layers.
#[ApiProperty(description: '')] convention from DTOs (2.1.0) down to the filter layer: every generated QueryParameter in an <Entity>Filters catalog now carries an explicit description argument, left empty for product/front to fill. The paired application-side architecture test that rejects an empty description turns documentation from a launch-week afterthought into a merge-blocking requirement. This is a lever for deciding whether OpenAPI/API docs are a shipped artifact or a best-effort artifact.status, realm as framework-level system parameters). Buying/inheriting keeps one team's opinions about what counts as a "documented" parameter.status and realm encodes a judgment: system-owned, universally understood parameters don't need bespoke prose. That is a policy decision worth reviewing explicitly — it is where the package makes a stance the team may or may not share.Adopt when:
status/realm exemption is not the thin end of an ever-growing allowlist.Look elsewhere or defer when:
For executives: This release makes API documentation a precondition of shipping rather than a follow-up task. Every generated filter parameter must now carry a description, and the build fails until someone writes it. Cost is low and localized — one argument in a generator, one test — but the strategic effect is that undocumented endpoints cannot silently reach customers. Treat it as a policy commitment, not a feature: the value is realized only if we enforce the test and staff the copy review.
For engineering: No breaking changes. Generated <Entity>Filters now emit QueryParameter(..., description: '') on every parameter; status and realm are exempted as framework-level. The app-side architecture test must be adopted in the same release, otherwise the placeholders are decorative. Two things to settle before rollout: (1) the mechanism for filling descriptions — regenerate-and-edit is fragile if the generator overwrites, so confirm generated catalogs are either user-owned post-generation or the descriptions live in a side channel the generator reads; (2) the exemption list is now a maintained surface — each new exemption should require review, or the guarantee erodes quietly. French copy is assumed; flag if that is wrong for any consuming service.
How can I help you explore Laravel packages today?