Я пытался написать пользовательскую функциональность, в которой конечная точка REST потребляет простой текст. Вот кусок кода:Spring Data Rest Custom Controller с содержимым-типом: «text/plain»
@RepositoryRestController
@RequestMapping("/api/samples")
public class SampleController {
@Autowired
SampleRepository sampleRepository;
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.TEXT_PLAIN_VALUE)
@ResponseBody
public void updateSample(@PathVariable Long id, @RequestBody String message) {
//do some custom logic here
//sampleRepository.update(id);
}
}
остальное Spring Data бросает исключение HttpStatus.UNSUPPORTED_MEDIA_TYPE(415)
. Однако, когда я перемещаю код в отдельный контроллер:
@RestController
@RequestMapping("/api/samples")
public class SampleController {
@Autowired
SampleRepository sampleRepository;
@RequestMapping(value = "/{id}", method = RequestMethod.PUT,consumes =MediaType.TEXT_PLAIN_VALUE)
@ResponseBody
public void updateSample(@PathVariable Long id,@RequestBody String message) {
//do some custom logic here
//sampleRepository.update(id);
}
}
Это работает нормально. Кто-нибудь сталкивался с подобными проблемами, перемещение кода в отдельный метод разрешает проблему (Work Around).
Любое предложение о том, как подойти к проблеме было бы здорово