Spring - is possible to give same url in request mapping of post method?

后端 未结 3 1586
情歌与酒
情歌与酒 2021-01-21 18:12

Is that possible to use same url in request mapping for two different post method, only request body differs.

3条回答
  •  盖世英雄少女心
    2021-01-21 18:42

    No, you can't give same url in request mapping of post method having different request body type but same media type. Below won't work:

      @PostMapping(path = "/hello", consumes = MediaType.APPLICATION_JSON_VALUE)
      public String hello(@RequestBody Pojo1 val) {
        return "Hello";
      }
    
      @PostMapping(path = "/hello", consumes = MediaType.APPLICATION_JSON_VALUE)
      public String hello(@RequestBody Pojo2 val) {
        return "Hello";
      }
    

    If you have different media type, then it will. Below will work:

      @PostMapping(path = "/hello", consumes = MediaType.APPLICATION_JSON_VALUE)
      public String hello(@RequestBody Pojo val) {
        return "Hello";
      }
    
      @PostMapping(path = "/hello", consumes = MediaType.TEXT_PLAIN_VALUE)
      public String hello(@RequestBody String val) {
        return "Hello";
      }
    

    Your RequestMapping should differ on at least one of the conditions; path,method,params,headers,consumes,produces

提交回复
热议问题