spring-projects / spring-projects/spring-framework
Rejection of @RequestMapping and @HttpExchange declarations on the same element prevents elegant designs.
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
Caused by https://github.com/spring-projects/spring-framework/issues/32065
Upgrading Spring version I Just stumbled upon an issue caused from removing the support to have both type of annotations in a single element.
Allowing both annotations provides more flexibility on simpler designs since the API can be defined in a single interface and ensure both controller and clients work by implementing the same root API. It also simplifies quite much when there is inheritance and the need to use @RequestMapping unique features (like multiple URLs or the params condition).
As of this change, where I have a generic interface defining a common API, which is inherited by a domain-based API and finally implemented by a controller and its respective client, I would need to separate from the root API (most generic one) since there are methods that have unique requirements on the @RequestMapping declarations (including Get, Post and the other method variants) and that can't be set with @HttpExchange (and therefore can't opt to use that one also for Controllers).
This workaround is less natural and becomes messy very fast.
Would it be possible to review this decision and, maybe, revert it?
Design allowing @RequestMapping and @HttpExchange based declarations on the same element
Design to achieve the same by rejecting @RequestMapping and @HttpExchange based declarations on the same element
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests; first read the referenced Spring Framework issue #32065 and this discussion. Determine whether @RequestMapping and @HttpExchange can coexist across the described inheritance design, including RequestMapping-only conditions, and define the supported behavior and compatibility expectations that would need validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100