OpenFeign / OpenFeign/feign

Expose Original Interface Details in Request object

Open
#678 3 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

proposal waiting for votes
Dominant language
Java
Stars
9.8k
Forks
1.9k
Avg merge
1d 2h
Merged PRs (30d)
41

Description

It would be great to be able access the original method's metadata (i.e. the method's name and potential custom annotations) defined in the interface in the Feign.Request object.

This would be especially useful when instrumenting Feign to do OpenTracing or Micrometer for example. From a REST perspective this will add value if you want to group all your metrics based on the original method name rather than the final URL that might contain a lot of path parameters and be too specific. From a SOAP perspective (where the URL is usually constant, only the body changes) this becomes invaluable as you can use the original interface method name as your identifier.

There are some attempts at doing this (ie. https://github.com/mwiede/metrics-feign/) but if you check the implementation, it has to go through hoops to achieve it because there are no easy integration options available. If this was freely available in all touch points via the Request object this would be a great.

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.

Research direction

Start by locating Feign.Request and tracing how interface method calls become requests. Determine where the original method name and custom annotations are available before request construction. Done means those interface details are accessible through Request at the relevant instrumentation touch points without the workarounds described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.