Весна данных Rest отмечает, что Пользовательские ссылки могут быть добавлены к объекту, как показано ниже:Spring Data Rest Пользовательские ссылки на ресурс
http://docs.spring.io/spring-data/rest/docs/current/reference/html/#_the_resourceprocessor_interface
Пример Дано:
@Bean
public ResourceProcessor<Resource<Person>> personProcessor() {
return new ResourceProcessor<Resource<Person>>() {
@Override
public Resource<Person> process(Resource<Person> resource) {
resource.add(new Link("http://localhost:8080/people", "added-link"));
return resource;
}
};
}
Очевидно жесткое кодирование плохо, так как я могу написать такой компонент, который может динамически получить путь для другого ресурса в приложении?
Очевидным решением, казалось бы, было бы добавить экземпляр RepositoryRestConfiguration, однако все поисковые запросы в этой области на вложенной конфигурации возвращают null, даже если репозиторий открыт и работает для этого ресурса.
Другие данные, такие как определения проецирования, классы с идентификаторами и т. Д., Присутствуют в введенной репозиторииRestConfiguration, как ожидалось. Итак, почему я получаю null для этих поисков?
@Component
public class CaseResourceProcessor implements ResourceProcessor<Resource<Case>>
{
@Autowired
private RepositoryRestConfiguration configuration;
@Override
public Resource<Case> process(Resource<Case> resource)
{
//null
configuration.getResourceMappingForDomainType(Submission.class).getPath();
//null
configuration.getResourceMappingForRepository(SubmissionRepository.class).getPath();
resource.add(new Link("...."));
return resource;
}
}
Большая часть кода в этой области является устаревшим, однако это не совсем ясно, что следует использовать вместо (хотя я бы ожидать, что устаревший код rmain функционал).
По существу, как я программно обнаруживаю URL-адрес для определенного объекта или репозитория.