Odpowiednie uzycie PUT i POST

0

Z tego co udało mi się wyczytać to POST powinien służyć do dodawania czegoś a PUT do updatowania tego czegoś. Jednakże gdy zamienie wymienione "funkcjonalności" i uzyje ich zamiennie to nadal wszystko będzie działać więc czy różnica PUT vs POST wynika głównie z góry ustalonej konwencji?

    @PostMapping("/add")
    public void addBook(@RequestBody Book book){
        bookRepository.save(book);
    }

    @PutMapping("update/{id}")
    public void updateBook(@RequestBody Book book, @PathVariable Long id){
        book.setId(id);   // id to primary key
        bookRepository.save(book);
    }

Czy takie wykorzystanie będzie odpowiednie? Czy taki sposób zapewnienia idempotentności PUT będzie ok?

0

Z tego co udało mi się wyczytać to POST powinien służyć do dodawania czegoś a PUT do updatowania tego czegoś. Jednakże gdy zamienie wymienione "funkcjonalności" i uzyje ich zamiennie to nadal wszystko będzie działać więc czy różnica PUT vs POST wynika głównie z góry ustalonej konwencji?

Tak. Różnica wynika z konwencji. Z drugiej strony jednak pewne narzędzia mogą polegać na powszechnie pojętej semantyce, a więc np jakiś ogólny klient RESTowy może mieć domyślnie zakodowane ponawianie żądań GET i PUT, a wysypywanie się od razu przy POSTach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1