使用FeignClient实现微服务间接口调用

本文介绍如何使用Feign实现微服务之间的接口调用,包括服务接口定义、数据传输及自定义控制器的创建。同时,阐述了在服务未共享model时的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,根据要调用的服务及接口:

import com.sample.pass.distrition.model.ResultBody;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "cd-server")
public interface CdClient {
  @GetMapping("/crmdict/province")
  ResultBody province();

  @GetMapping("/crmdict/city")
  ResultBody city(@RequestParam("provinceId") Integer provinceId);

  @GetMapping("/crmdict/area")
  ResultBody area(@RequestParam("cityId") Integer cityId);

}

然后,编写自己的需要暴露的接口:

@RestController
@RequestMapping(value="/currency")
public class CurrencyController {
   
   @Autowired
   private CdClient cdClient;

   @RequestMapping(value="/findAll",method = RequestMethod.GET)
   public ResultBody findAll() {
      ResultBody obj = cdClient.findAll();
      List<Currency> list = (List<Currency>)obj.getData();
      if (list.size()<=0) {
         return new ResultBody(ResCodeEnum.NULL_DATA.getCode(),"数据为空!");
      }
      return new ResultBody(ResCodeEnum.SUCCESS.getCode(),"success",list);
   }
   
}

通过这两步,我们已经能实现服务间的接口调用,数据传输等操作了。

补充:

若暴露接口的服务没有将model共享,那么我们还需要在自己的项目中建一个一摸一样的model,这样才能调到数据。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值