У меня есть сервисный уровень Java-кода, который я хотел бы использовать в некоторых вызовах REST. Я хотел бы сделать так, чтобы пользователь передал идентификатор службы в URL-адресе, а затем во внутреннем поиске службы и метода (в БД или в файле конфигурации) и вызвал его. Например:
http://foobar.com/rest/car
Когда этот URL вызывается, я бы взял serviceId "car" и позвонил в CarService. Я думаю, у меня была бы простая конфигурация:
car=com.foobar.services.CarService
house=com.foobar.services.HouseService
etc..
Есть ли способ сделать это с помощью Spring? У меня проблема не в вызове службы, а в выяснении, какой метод вызывать. Если бы у меня был вызов http://foobar.com/services/car/red - как бы я передал параметр метода 'red' и решил, какой метод вызвать?
Вот пример того, как это будет выглядеть в Java:
@RequestMapping(value = "{serviceId}")
@ResponseBody
public Object getMarshalledObject(@PathVariable String serviceId) {
if ("car".equals(serviceId)) {
return getCar();
}
throw new ServiceNotFoundException("Service ID not found.");
}