错误:为spring数据中的HTTP路径映射的模糊处理程序方法

时间:2016-07-08 06:58:53

标签: java spring mongodb rest

这是代码:

@Import(Appconfig.class)
@RestController
//@RequestMapping("/api/destination/find")
public class RestApi01_Controller {

    @Autowired
    public CountryRepo Country_Repository;

    @Autowired
    public CityRepo City_Repository;

    @Autowired
    public AirportRepo Airport_Repository;

    @Autowired
    public ResortRepo  Resort_Repository;


   @RequestMapping(value="/api/destination/find/{city}", method=RequestMethod.GET)
    public List<Master_City> getCity(@PathVariable String city) {

        return City_Repository.findByCityLikeIgnoreCase(city);
  }

    @RequestMapping(value="/api/destination/find/{airportname}", method=RequestMethod.GET)
    public List<Master_Airport> getAirportname(@PathVariable String airportname) {

        return Airport_Repository.findByAirportnameLikeIgnoreCase(airportname);
  }

  @RequestMapping(value="/api/destination/find/{resortname}", method=RequestMethod.GET)
    public List<Master_Resort> getResortname(@PathVariable String resortname) {

        return ResortRepository.findByResortnameLikeIgnoreCase(resortname);
  }
}

1 个答案:

答案 0 :(得分:0)

您的REST端点基本上指向相同的URI模式。

以前两个为例,

/api/destination/find/{city}

/api/destination/find/{airportname}

由于{city}和{airportname}是占位符,并且URI都是HTTP GET方法,因此当调用/api/destination/find/london时,Spring无法确定要使用哪个API。

而不是这个,请使用请求参数。像这样的东西

/api/destination/find?airport={airportname}

/api/destination/find?city={city}