author, LocalDate published) throws … { AddRequest request = new AddRequest(title, author, published); BookResponse bookResponse = client .post() .uri("/books") .body(request) .retrieve() .body(BookResponse.class); return bookResponse.toModel(); } // 本を追加する public Book add(String title, String author, LocalDate published) throws … { AddRequest request = new AddRequest(title, author, published); BookResponse bookResponse = restTemplate.postForObject( "/books", request, BookResponse.class); return bookResponse.toModel(); } 他のHTTPメソッド呼び出しにな てもfluentな呼び出しスタイル に変化なし。HTTPメソッド指定 の個所を変えるだけ // 本を更新する BookResponse bookResponse = client .put() .uri("/books") .body(request) .retrieve() .body(BookResponse.class); return bookResponse.toModel(); // 本を削除する client .delete() .uri("/books/{id}", id) .retrieve() .toBodilessEntity(); xxxForObject, xxxForEntityの xxxは使用するHTTPメソッドに よって使い分ける RestTemplate RestClient