比较:@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 的 path
和 value
之间的区别:
Just wanna find out the differences between the two.
path
和 value
元素是彼此的别名,从 Spring Documentation:
中我可以看出只有细微差别
使用path
时:
还支持 - Ant-style 路径模式(例如
"/profile/**"
);
- 可以使用占位符(例如
"/${profile_path}"
)。
我想知道以上哪一个是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 的 path
和 value
之间的区别:
Just wanna find out the differences between the two.
path
和 value
元素是彼此的别名,从 Spring Documentation:
使用path
时:
-
还支持
- Ant-style 路径模式(例如
"/profile/**"
); - 可以使用占位符(例如
"/${profile_path}"
)。