spring-projects / spring-projects/spring-framework

Allow use of form-backing object for client requests

Open
#32,142 5 comments 7 reactions 1 assignee View on GitHub

@rstoyanchev is already working on this.

Since Jun 2, 2025.

in: web type: enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.