GET 请求
Feign客户端
@FeignClient("lik-dr-product")
public interface ProductFeign {
/**
* 从请求路径获取值,需要使用@PathVariable注解
*/
@GetMapping("/product/findById/{id}")
Product findById(@PathVariable("id") Long id);
/**
* 从请求参数中获取值,需要使用@RequestParam注解,可以不用在注解中指定值
* 注意点:Feign方法中的参数名必须跟对应的服务端方法参数名一致
*/
@GetMapping("/product/findProduct")
R findProduct(@RequestParam String name, @RequestParam String code);
/**
* 对象作为参数时需要加上@SpringQueryMap注解
*/
@GetMapping("/product/findProduct2")
R findProduct2(@SpringQueryMap ProductDTO productDTO);
/**
* 使用Map作为参数,必须加上@RequestParam注解或者@SpringQueryMap注解
*/
@GetMapping("/product/findProduct3")
R findProduct3(@RequestParam Map<String, Object> map);
}
服务端控制器
@Slf4j
@RestController
@RequestMapping("/product")
public class ProductController {
@Autowired
private IProductService productService;
/**
* 从请求路径获取值,需要使用@PathVariable注解
*/
@GetMapping("/findById/{id}")
public Product findById(@PathVariable("id") Long id) {
Product product = productService.getById(id);
return product;
}
/**
* 从请求参数中获取值
* 注意点:如果参数名跟Feign方法中的参数名不一致的话,需要用@RequestParam注解指定Feign中的参数名,如果一致可以省略@RequestParam注解
*/
@GetMapping("/findProduct")
public R findProduct(@RequestParam("name") String name1, String code) {
String msg = "name1=" + name1 + " code=" + code;
log.info(msg);
return R.ok().data(msg);
}
/**
* 使用对象作为参数
*/
@GetMapping("/findProduct2")
public R findProduct2(ProductDTO productDTO) {
log.info(productDTO.toString());
return R.ok().data(productDTO.toString());
}
/**
* 使用Map作为参数,必须加上@RequestParam注解
*/
@GetMapping("/findProduct3")
public R findProduct3(@RequestParam Map<String, Object> map) {
String msg = JSONUtil.toJsonStr(map);
log.info(msg);
return R.ok().data(map);
}
}
POST请求
Feign客户端
@FeignClient("lik-dr-product")
public interface ProductFeign {
/**
* 对象参数需要加上@RequestBody注解
*/
@PostMapping("/product/findProduct4")
R findProduct4(@RequestBody ProductDTO productDTO);
}
服务端控制器
@Slf4j
@RestController
@RequestMapping("/product")
public class ProductController {
/**
* Post请求对象参数需要加上@RequestBody注解
*/
@PostMapping("/findProduct4")
public R findProduct4(@RequestBody ProductDTO productDTO) {
log.info(productDTO.toString());
return R.ok().data(productDTO.toString());
}
}