How to Write a interface based RestController to call appropriate implemented controller based on the request params,
- /start?param=bmw should invoke BMW Controller
- /start?param=volvo should invoke Volvo Controller
Interface called "Car" with single abstract "startEngine" :
@RestController("/start")
interface Car {
String startEngine();
}
class BMW implements Car{
@Override
@GetMapping("/{param}") // bmw
public String startEngine() {
return "BMW Started";
}
}
class Volvo implements Car{
@Override
@GetMapping("/{param}") // volvo
public String startEngine() {
return "Volvo Started";
}
}
How Can we achieve above use case.
Expose a GET REST Endpoint as "/start" which would accept a queryparam "param" accepting String values "bmw" or "Volvo”.