Hi,
I'm currently working on scaffolding AG-controller stuff and for that I'm relying on the REST endpoints generated by the forge REST plugin. A typical method's signature of a generated endpoint looks like that :
public Response findById(Long id)
But an AG Controller route definition can't point to such a target method since it only support Strings as parameters :
route().from("/customers/{id}").on(RequestMethod.GET).consumes(JSON).produces(JSON).to(CustomerEndpoint.class).findById(param("id"));
Of course, the quick workaround would be to change the signature of the endpoint to :
public Response findById(String id)
But, in my particular case, after the scaffolding happens I can't really tell the developers : "Well, now you have to change manually all the signature of your endpoints and convert your Strings to Longs".
Another use case could be an application having existing endpoints used by a Application A and we introduce Application B using AG controller. More generally, I think it would be a nice addition to AG controller.
I've already proposed a pull request[1] that can't handle all the types which have a constructor with a single String parameter : Long, Integer, BigDecimal, etc ... And also added unit tests to be sure I doesn't break
Feedback is more than welcome !
Seb