目录
OpenFeign参数传递
传递单个参数
传递多个参数
传递对象
传递JSON
OpenFeign参数传递
传递单个参数
服务提供方product-service
@RequestMapping("/product")
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping("/p1")
public String p1(Integer id){
return "product-service 接收到参数, id:"+id;
}
}
Feign客户端
@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
@RequestMapping("/p1")
String p1(@RequestParam("id") Integer id);
}
远程调用方order-service
@RequestMapping("/feign")
@RestController
public class FeignController {
@Autowired
private ProductApi productApi;
@RequestMapping("/o1")
public String o1(Integer id){
return productApi.p1(id);
}
}
启动服务并访问
传递多个参数
服务提供方product-service
@RequestMapping("/product")
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping("/p2")
public String p2(Integer id, String name){
return "product-service 接收到参数, id:"+id+",name:"+name;
}
}
Feign客户端
@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
@RequestMapping("/p2")
String p2(@RequestParam("id") Integer id, @RequestParam("name") String name);
}
远程调用方order-service
@RequestMapping("/feign")
@RestController
public class FeignController {
@Autowired
private ProductApi productApi;
@RequestMapping("/o2")
public String o2(Integer id, String name){
return productApi.p2(id,name);
}
}
启动服务并访问
传递对象
服务提供方product-service
@RequestMapping("/product")
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping("/p3")
public String p3(ProductInfo productInfo){
return "product-service 接收到参数: productInfo"+productInfo.toString();
}
}
Feign客户端
@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
@RequestMapping("/p3")
String p3(@SpringQueryMap ProductInfo productInfo);
}
远程调用方order-service
@RequestMapping("/feign")
@RestController
public class FeignController {
@Autowired
private ProductApi productApi;
@RequestMapping("/o3")
public String o3(){
ProductInfo productInfo = new ProductInfo();
productInfo.setId(45);
productInfo.setProductName("T恤");
return productApi.p3(productInfo);
}
}
启动服务并访问
传递JSON
服务提供方product-service
@RequestMapping("/product")
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping("/p4")
public String p4(@RequestBody ProductInfo productInfo){
return "product-service 接收到参数: productInfo"+productInfo.toString();
}
}
Feign客户端
@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {
@RequestMapping("/p4")
String p4(@RequestBody ProductInfo productInfo);
}
远程调用方order-service
@RequestMapping("/feign")
@RestController
public class FeignController {
@Autowired
private ProductApi productApi;
@RequestMapping("/o4")
public String o4(){
ProductInfo productInfo = new ProductInfo();
productInfo.setId(46);
productInfo.setProductName("T恤46");
return productApi.p4(productInfo);
}
}
启动服务并访问