Spring rest resource change path

2019-02-26 05:02发布

问题:

I currently have a repository annotated with @RepositoryRestResource. I'm adding the following:

@RestResource(path="make", rel = "make", description = @Description("Get vehicles by make"))
List<Vehicle> findByMake(@Param("make") String make);

This works fine but the path by default is api/vehicles/search/make.

How can I remove the /search part and just have the path be api/vehicles/make?

回答1:

Unfortunately it's not possible. I make some research in Spring Data Rest source code.

There are constants that uses for URI building in RepositorySearchController.java:

private static final String SEARCH = "/search";
private static final String BASE_MAPPING = "/{repository}" + SEARCH;

And here is the action method that handle requests by services with @RepositoryRestResource annotation. So as you can see the search part is hardcoded and couldn't be changed.