比较:@RequestMapping 与 @PathVariable 的用法

Comparison: usage of @RequestMapping vs @PathVariable

我想知道以上哪一个是better/correct/most_used或者什么。第一个,使用 @RequestMapping 中的值或另一个使用路径。

    @RequestMapping(value = { "/isbn/{isbnCode}" }, method = RequestMethod.GET)
    public ResponseEntity<?> findByIsbnCode(@PathVariable String isbnCode) {
        Book obj = service.findByIsbnCode(isbnCode);

        return ResponseEntity.ok().body(obj);
    }
// Request: http://localhost:8080/books/title?title=book_title

    @RequestMapping(method = RequestMethod.GET, path = { "/title" })
    public ResponseEntity<?> findByTitle(@RequestParam(value = "title") String title) {
        Book obj = service.findByTitle(title);

        return ResponseEntity.ok().body(obj);
    }
// Request: http://localhost:8080/books/isbn/978-84-663-4612-2

两者都有效。只是想找出两者之间的区别。

提前致谢!

"URI 参数(Path Param/variable 表示为@PathVariable)主要用于标识一个或多个特定资源,而Query Parameter(或@RequestParam 表示的请求参数)用于sort/filter那些资源。” 第一个示例使用路径变量,在这里您从 url 本身提取值,而在第二个示例中您正在获取 request/query 参数。 参考: https://dzone.com/articles/understanding-the-uri-param-and-query-param-with-r https://blog.restcase.com/7-rules-for-rest-api-uri-design/#:~:text=URIs%20should%20follow%20a%20predictable,APIs%20are%20written%20for%20consumers.

JPA is the Java Persistence API, and it has nothing to do with @RequestMapping;

您问的是@RequestMapping 的 pathvalue 之间的区别:

Just wanna find out the differences between the two.

pathvalue 元素是彼此的别名,从 Spring Documentation:

中我可以看出只有细微差别

使用path时:

    还支持
  • Ant-style 路径模式(例如 "/profile/**");
  • 可以使用占位符(例如 "/${profile_path}")。