Client and AsyncClient abstraction seems not good enough
Open
Nobody has claimed this yet.
proposal
- Dominant language
- Java
- Stars
- 9.8k
- Forks
- 1.9k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 41
Description
- we expose much implemention detail to user api , user must identify the sync feign client/builder and the async client/buider.
If we only expose client to user , and proxy sync/async method accordingly(seperate/implement the async boundary accordingly), is it feasible?
2.sync invoke or async invoke seems is naturally unified, could we just Override accordingly?
public interface Client {
default Response execute(Request request, Options options) throws IOException {
return execute(request, options, emptyContext).join();
}
default CompletableFuture<Response> execute(Request request, Options options, Optional<C> requestContext){
return CompletableFuture.completed(execute(request, options));
}
}
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
Start with the Client and AsyncClient abstractions, then trace the sync and async Feign client/builders and their execute entry points. Compare whether proxying sync and async methods can share one user-facing Client without exposing implementation details. Done means a clear feasibility decision and defined scope for any abstraction change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100