bambamboole/spectacular
Spectacular is a Laravel package by bambamboole that streamlines common development tasks with a clean, expressive API. Easy to install and configure, it helps teams build features faster while keeping the codebase tidy, readable, and easy to maintain.
dedoc/scramble and lets us shape the generated OpenAPI spec — discriminators for polymorphic OneOf responses, custom InfoObject metadata, and control over how nested filter parameters are flattened. That means the decision "do we publish a spec at all?" becomes "how accurate is the spec our SDKs and partners consume?"flatten_deep_query_parameters for filters — directly affects whether generated docs and client SDKs describe deeply nested filter params (e.g. filter[author][name]) correctly. If we expose nested filtering to external consumers, this is a correctness fix for the developer experience, not a cosmetic one.dedoc/scramble ^0.13.48, changed OneOf::setDiscriminator() signature to accept Scramble's Discriminator, removed Spectacular's own InfoObject). Treat it as a roadmap item with engineering cost, not a routine composer update. Any consumer code referencing Spectacular's InfoObject or calling setDiscriminator() with the old type must be migrated in the same change.Adopt when:
dedoc/scramble and need schema refinements Scramble does not provide out of the box — particularly discriminated OneOf unions (polymorphic API resources) and custom InfoObject metadata for a published spec.flatten_deep_query_parameters setting, so client generators produce usable parameter names.Look elsewhere when:
0.13.48 and cannot upgrade — 0.30.0 is not available to us.setDiscriminator() signature changes and InfoObject removal.For executives: This is a small, focused library that improves the accuracy of the API documentation we hand to partners and use to generate client SDKs. The new 0.30.0 release fixes a real correctness gap — nested filter parameters now appear in the spec the way our API actually behaves — which reduces integration support load and prevents client-side bugs. The trade-off is that it is a pre-1.0 dependency with an explicit breaking change in this release, so adopting it means committing a modest, recurring maintenance budget to keep it in lockstep with its upstream library. Recommendation: adopt if external API documentation accuracy is a priority; budget one engineering migration per significant upstream bump.
For engineering: 0.30.0 is breaking. Requirements: dedoc/scramble ^0.13.48; OneOf::setDiscriminator() now takes Scramble's Discriminator type; Spectacular's own InfoObject class is removed. Audit the codebase for both before upgrading, and upgrade Scramble and Spectacular as a single change set — do not bump one without the other. The functional win is that flatten_deep_query_parameters is now honoured for filter parameters, so generated specs match runtime query semantics for nested filters. Because this package patches Scramble's serialisation internals, pin to an exact minor version and treat each release as a review item rather than auto-merging dependency updates.
How can I help you explore Laravel packages today?