gpt4 book ai didi

java - Spring boot中的GetMapping排除特定路径变量匹配

转载 作者:行者123 更新时间:2023-12-02 11:58:15 49 4
gpt4 key购买 nike

我有一个带有以下 GetMapping 的 Controller

@GetMapping(value = "/dawson/v1/{dataType}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<String> respondWithData(@PathVariable String dataType, @RequestParam(name = "minDate") String min_date, @RequestParam(name = "maxDate") String max_date, @RequestParam(USERID) String user_id, @RequestHeader(value = "Authorization") String authorizationHeader) {

其中 dataType 可以是 String、Map、Object 或 Calendar 之一。我创建了另一个 GetMapping 如下

@GetMapping(value = "/dawson/v1/signInReq")
public ResponseEntity<String> mySignInRequest(@RequestBody Map<String, String> paramMap, HttpServletRequest request, HttpServletResponse response) {

但是,当我尝试访问/dawson/v1/signInReq 时,它仍然会命中第一个映射,而不是 signInReq 映射。有没有办法排除signInReq作为{dataType}的匹配项?

我确实有在上面的第一个映射中列出所有可能的数据类型的解决方法,但想知道是否有更好的方法来处理它(也许是正则表达式?)。

最佳答案

我使用 REGEX 模式来解决路径过滤,如下所示:

@GetMapping(value = "/dawson/v1/{dataType:^.*(?!signInReq)}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)

正则表达式将仅匹配非signInReq的请求。

关于java - Spring boot中的GetMapping排除特定路径变量匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445604/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com