Я использую Spring-boot-starter-data-jpa, в моем RestController Я хочу вернуть местоположение вновь созданного объекта. Есть ли способ перевернуть @ RequestMapping, а не hardcode, как создать URL-адрес?Spring получить ссылку на объект
@RestController
@ExposesResourceFor(BookInstance.class)
public class BookInstanceController {
@RequestMapping(value="/bookInstances", method=RequestMethod.POST)
ResponseEntity<BookInstance> createBookInstance(@RequestBody BookInstance bookInstance){
BookInstance createdBookInstance = bookInstanceRepository.save(bookInstance);
return ResponseEntity.created(**reverseURL(createdBookInstance)**);
// return new ResponseEntity<BookInstance>(createdBookInstance, HttpStatus.CREATED);
// return createdBookInstance;
}
}
Я всегда вижу людей жесткого кодирования их URL строительства в этой функции, которая просто оставляет меня без слов ....
Конечно, я также функцию GET в одном классе (в противном случае не будет ничего обратного)
@RequestMapping(value="/bookInstances/{id}", method=RequestMethod.GET)
ResponseEntity<?> findOne(@PathVariable("id") Long id){
BookInstance bookInstance = bookInstanceRepository.findOne(id);
if(bookInstance == null){
return ResponseEntity.notFound().build();
}
return new ResponseEntity<BookInstance>(bookInstance, HttpStatus.OK);
}