私は自動休止エンドポイントとHATEOASのためにSpring Data Restを使用しています。私はローカルホストに行くとき:8080私が取得:Springデータレストを使用するコントローラとリポジトリの同じURLマッピング
{
"_links": {
"books": {
"href": "http://localhost:8080/books{?page,size,sort}",
"templated": true
},
"users": {
"href": "http://localhost:8080/users"
},
"customers": {
"href": "http://localhost:8080/customers"
},
"profile": {
"href": "http://localhost:8080/profile"
}
}
}
GETする@ localhostの:8080 /本を私に与える:ここで There was an unexpected error (type=Method Not Allowed, status=405). Request method 'GET' not supported
は私のレポです:
public interface BookRepository extends PagingAndSortingRepository<Book, Long> {
Optional<Book> findByIsbn(String isbn);
}
マイコントローラ:
@RestController
public class BookController {
private final BookService bookService;
@Autowired
public BookController(BookService bookService) {
this.bookService = bookService;
}
@PostMapping("/books")
@ResponseStatus(HttpStatus.CREATED)
public Book newToDo(@RequestBody BookDTO bookDTO) {
return bookService.addNewBook(bookDTO);
}
@PutMapping("/books/{id}")
public ResponseEntity<?> editToDo(@PathVariable("id") Long id, @RequestBody double newPrice) {
return new ResponseEntity<>(bookService.changePrice(id, newPrice), HttpStatus.OK);
}
}
コントローラなしGET @ localhost:8080/books
作品完全に細かい - リポジトリ自体がこのエンドポイントを設定し、私はすべての私の書籍を検索することができます。これらのPOSTメソッドとPUTメソッドを追加すると、エラーが発生します。 GET requests @ localhost:8080/books
のリポジトリとPOST @ localhost:8080/books
の通常のコントローラメソッドを使用する方法はありますか?カスタムエンドポイントの実装のために