Возможно ли обойтись без контроллеров?
Можно, но с ними проще и правильнее. И вообще, какие аргументы против?
Какие библиотеки следует использовать?
Java EE (Jersey например) или Spring Web
Как это реализовать максимально просто?
На Spring:
@RestController
@RequestMapping("/books")
public class BooksService {
@Autowired
private BooksRepository booksRepository;
/**
* Список книг
*/
@RequestMapping
public ResponseEntity list() {
return ResponseEntity.ok(booksRepository.findAll());
}
/**
* Добавление новой книги
*/
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity create(@RequestBody Book book) {
return ResponseEntity.ok(booksRepository.save(book));
}
/**
* Получение существующей книги
*/
@RequestMapping("/{id}")
public ResponseEntity get(@PathVariable String id) {
if (bookRepository.exists(id)) {
return ResponseEntity.ok(booksRepository.save(book));
}
return ResponseEntity.notFound().build();
}
}
В данном случае используется ещё Spring Data JPA.