I need to introduce a breaking change to one endpoint in a REST API. The backend currently versions by duplicating the entire app per version. Example layout:
/rest
/v1
/controllers
/models
/v2
/controllers
/models
/v3
/controllers
/models
Not all endpoints change with each version. When a bug is fixed in v2, the same fix must be applied manually in v3. This duplication is error-prone.
What project structure or pattern allows:
-
Shared implementation for unchanged endpoints across versions.
-
Isolation for versioned endpoints when breaking changes are required.
Constraints:
-
Language/framework agnostic.
-
Folder layout or structural examples are acceptable.
-
I want to know how to implement this technically, not whether one approach is “better.”