spring-hateoas icon indicating copy to clipboard operation
spring-hateoas copied to clipboard

Support for interface-driven controllers `linkTo(…)` on path variables

Open M-Whitaker opened this issue 2 years ago • 1 comments

Hi, since Spring 5.1 "Controller parameter annotations get detected on interfaces as well: Allowing for complete mapping contracts in controller interfaces." I am trying to use the linkTo function on a class that implements an interface that has annotations on it for Path variables.

Unfortunately, currently, this does not resolve the actual value of the path variable and instead uses a template. Copying the annotation down to the implementing class is currently a workaround but not pretty or DRY. Is this a bug that is known?

I think #1081 documents this a little however never seems to have been looked at. I am now using spring boot 3.

Thanks

M-Whitaker avatar Dec 17 '22 16:12 M-Whitaker

The sample code shown in the linked example don't actually show the interface not being considered, but only path variables not expanded, which, given that the reporter doesn't explain what the input to the link creation is, could be a perfectly valid outcome. Do you have a more detailed example of what you see not working? Given the general arrangement in the other ticket, the request mappings indeed are detected on interfaces.

odrotbohm avatar Jan 12 '23 07:01 odrotbohm