← Back to list

Feign @RequestParam vs Controller @RequestParam: Same Annotation, Different Direction

While learning Feign Client in Spring Boot microservices, I noticed something confusing.

Vinojini Paramasivam · 2026-05-15 15:29 · 2 claps · 0.8 min read
#eureka #microservices #spring-cloud #spring-boot #java
Open on Medium ↗
Wiki topics: EDU · Education & Learning

Feign @RequestParam vs Controller @RequestParam: Same Annotation, Different Direction

While learning Feign Client in Spring Boot microservices, I noticed something confusing.

We use @RequestParam in normal controllers. We also use @RequestParam in Feign clients.

The annotation looks the same, but the purpose is different.

In a controller, @RequestParam reads data from an incoming HTTP request.

@GetMapping("/users")
public User getUser(@RequestParam String email) {
    return userService.findByEmail(email);
}

Example:

GET /users?email=test@gmail.com

In a Feign client, @RequestParam creates a query parameter for an outgoing HTTP request.

@FeignClient(name = "USER-SERVICE")
public interface UserClient {

    @GetMapping("/users")
    User getUser(@RequestParam String email);
}

When we call:

userClient.getUser("test@gmail.com");

Feign creates:

GET /users?email=test@gmail.com
Controller:
Client / Browser → User Service

Feign:
Order Service → User Service

Same annotation, different direction: Controllers read query params while Feign Clients create them.

Same annotation, different direction: Controllers read query params while Feign Clients create them.

The annotation is the same, but the role changes based on where we use it.

In controllers, it receives data. In Feign clients, it sends data.

This small difference helped me understand Feign Client more clearly. Feign is not doing magic — it is simply building HTTP requests from Java interfaces.


메타데이터
post_id
adc952506fea
slug
feign-requestparam-vs-controller-requestparam-same-annotation-different-direction-adc952506fea
url
https://medium.com/@vinojinip76/feign-requestparam-vs-controller-requestparam-same-annotation-different-direction-adc952506fea
canonical_url
https://medium.com/@vinojinip76/feign-requestparam-vs-controller-requestparam-same-annotation-different-direction-adc952506fea
author_url
https://medium.com/@vinojinip76
status
ok
fetched_at
2026-07-10 15:20:15