对于以下网址映射(所有GET请求):
1. "/book/{book-id}"
2. "/book/publisher/{publisher-id}"
3. "/book/borrower/{borrower-id}"
如果使用空字符串调用 2。或 3。,例如/ book / publisher /或/ book / user /然后忽略正斜杠/,并使用book-id作为'publisher'或'borrower'调用 1。。这是一个正确的行为,因为路径变量是强制性的,在这种情况下将1作为唯一有效的URL,或者是否有一些控制它的配置?
这是一个简单的休息控制器,它返回JSON(代码简化):
@RestController
public class BookController {
@Autowired
BookRepository repository; //JPA repository
@RequestMapping(value="/book/{book-id}",method= RequestMethod.GET)
public Book getBook(@PathVariable("book-id") String bookId){
return repository.findOne(bookId);
}
@RequestMapping(value="/book/publisher/{publisher-id}",method=RequestMethod.GET)
public List<Book> getBooksByPublisher(@PathVariable("publisher-id") String publisherId){
return repository.findAll(publisherId);
}
@RequestMapping(value="/book/borrower/{borrower-id}",method= RequestMethod.GET)
public List<Book> getBooksForBorrower(@PathVariable("borrower-id") String borrowerId){
return repository.findAll(borrowerId);
}
}
答案 0 :(得分:0)
您可以在getBook()方法中控制这样的流程
if(bookId.equals("publisher") || bookId.equals("borrower")){
model = new ModelAndView("index");
//or do other code to controll the flow
return model;
}