spring-projects / spring-projects/spring-framework
Allow use of form-backing object for client requests
@rstoyanchev is already working on this.
Since Jun 2, 2025.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
Affects: 6.+
I really appreciate the HttpServiceProxyFactory, it is a great feature to easily create a client matching a interface.
However, for large APIs, we usually like to encapsulate multiple parameters in convenience classes, which spring web supports with databinding.
public interface EndpointApi {
@GetExchange("/endpoint")
EndpointResponse getProcedures(
EndpointFilterOptions filterOptions,
EndpointSortOptions sortOptions,
EndpointPaginationOptions paginationOptions);
}
@ParameterObject
public record GetProceduresFilterOptions(
@BindParam("customName")
UUID filterOne,
String stringFilter,
Boolean booleanFilter,
Set<Types> setFilter) {}
}
However, when creating a client for EndpointApi and using it, no HttpServiceArgumentResolver exists per default to handle such parameters.
I would appreciate this feature out of the box, while I am are that, HttpServiceProxyFactory provides a way to register custom argumentResolvers.
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.
Assessment
This issue has not been assessed yet.