Вот версия проекта / Spring Data Rest.
// gradle
springBootVersion = '2.4.2'
springDependencyManagement = '1.0.10.RELEASE'
Вот мой код:
@RepositoryRestResource(collectionResourceRel = "address", path = "address")
public interface AddressRepository extends PagingAndSortingRepository<Address, Long> {
@Transactional
@RestResource(description = @Description("delete all addresses based on the given city"))
Long deleteAllByCity(String city);
}
address/searchне работает
{
"_links" : {
"deleteAllByCity" : {
"href" : "http://localhost:8080/api/v1/address/search/deleteAllByCity{?city}",
"templated" : true
},
"self" : {
"href" : "http://localhost:8080/api/v1/address/search"
}
}
}
/profile/addressне работает
...
{
"name": "deleteAllByCity",
"type": "SAFE",
"descriptor": [
{
"name": "city",
"type": "SEMANTIC"
}
]
}
...
Как добавить описание в поиск и профиль?





Согласно документация, RestResource.description является описанием ресурса коллекции, поэтому он не предназначен для описания метода, даже если @RestResource может быть помещен в метод.
Чтобы добавить читаемую пользователем строку к ссылке в ответе /address/search, создайте файл src/main/resources/rest-messages.properties, добавьте строку _links.deleteAllByCity.title=delete all addresses based on the given city. Тогда JSON ответа /address/search должен стать
{
"_links" : {
"deleteAllByCity" : {
"href" : "http://localhost:8080/api/v1/address/search/deleteAllByCity{?city}",
"templated" : true,
"title" : "delete all addresses based on the given city"
},
"self" : {
"href" : "http://localhost:8080/api/v1/address/search"
}
}
}
https://docs.spring.io/spring-hateoas/docs/current/reference/html/#mediatypes.hal.i18n