reindert-vetter/api-version-control
Laravel package for clean API versioning with version-specific controllers and routes. It detects the requested version from headers or URIs and dispatches requests accordingly, helping maintain backward-compatible endpoints without cluttering your application.
v2 without breaking existing integrations.Adopt when:
v1 and v2 serving traffic simultaneously from one codebase.Look elsewhere when:
To executives: This is a small, low-cost dependency that lets us change our API without breaking customers. It converts "we'd like to modernise the API but can't risk it" into a schedulable roadmap item, and gives us a defensible way to communicate end-of-life dates to partners. Cost is a package dependency and a routing convention; the payoff is the ability to ship breaking changes on our timetable instead of our slowest customer's.
To engineering: It replaces hand-rolled version-detection middleware and duplicated route registration with a maintained, config-driven package. You declare versioned route files and controllers; the package handles resolution via URI, header, or query parameter and exposes deprecation metadata. Low integration surface, easy to remove later.
Caveat to state plainly to both: version 2.3.3 is a maintenance release with no substantive changelog. It doesn't change the recommendation — but it's a reminder to pin the version, review diffs on upgrade, and confirm the package's Laravel support matrix against our target version before we standardise on it.
How can I help you explore Laravel packages today?