如何 create/call spring boot 中的 rest controller 同时具有路径和请求参数

How to create/call a rest controller in springboot with both path and request parameter

我在springboot中有这个rest controller方法

@GetMapping("/cghsHcoSearchText/cityId/{cityId}/hcoName/{hcoName}/treatmentName/{treatmentName}")
    public String cghsHcoSearchText(@PathVariable String cityId, @RequestParam(name = "hcoName", required = false) String hcoName, 
            @RequestParam(name = "treatmentName", required = false) String treatmentName) {
        return "Some Text";
    }

它有一个 PathVariable 和 2 个可选的 Request 参数。

现在,当我使用 treatmentName = null 点击 url 时,我得到 Whitelabel Error Page

http://localhost:8082/cghs/cghsHcoSearchText/cityId/011?hcoName=Guru?

任何帮助将不胜感激。

我们不应将请求参数指定为 URL 映射中的占位符。占位符中只应提及路径参数。分享一个代码片段和相应的 URL 这将有助于理解这个

@GetMapping("hello/{id}")
    public ResponseEntity<Void> printInfo(@PathVariable("id") String id,
            @RequestParam(required = false, name = "name") String name) {
        System.out.println(id + "   " + name);
        return new ResponseEntity<>(HttpStatus.OK);
    }

这里id作为路径参数出现,name作为请求参数出现,映射注释中没有提到。

URL 看起来像

http://localhost:8080/hello/234?name=pappi