简单对象:
@ResponseBody
@RequestMapping(value = "/say/{id}")
String say(@PathVariable("id") Integer id);
简单对象:需要对参数加@PathVariable("id")注解,请求路径要加{id}对应注解中的值。多个参数可以用多个路径叠加。示例方法:
@ResponseBody
@RequestMapping(value = "/say/{id}/{name}")
String say(@PathVariable("id") Integer id,@PathVariable("name") String name);
方法上一定要加@ResponseBody,否则spring cloud就会认为返回的是路径。
还可以用@RequestParam注解来请求
@ResponseBody
@RequestMapping(value = "/say", method = RequestMethod.POST)
String say(@RequestParam("id") int id, @RequestParam("id3") int id3);
复杂对象:
@ResponseBody
@RequestMapping(value = "/getServerBase", method = RequestMethod.POST)
ServerBaseData getServerBase(@RequestBody ServerBaseData data);
复杂对象:参数就直接用@RequestBody注解,请求路径就是基础路径,不要再加{}了。一定要用post请求。
简单对象也可以用这种方式传输
方法上一定要加@ResponseBody,否则spring cloud就会认为返回的是路径。
Method has too many Body parameters:
只能有一个@ResponseBody注解的参数,否则就会报上边这个错误
@ResponseBody
@RequestMapping(value = "/getServerBase", method = RequestMethod.POST)
ServerBaseData getServerBase(@RequestParam("id") int id, @RequestBody ServerBaseData data1);
@RequestParam @RequestBody 可以混用
前提
这都是在消费端和服务端共用的接口上写的,实现类上只加@Controller注解即可。关于共用接口参照:https://blog.csdn.net/u014084297/article/details/118159615