SpringBoot+SpringCloud+Feign 调用第三方接口,或服务接口

/ Java / 没有评论 / 4128浏览

SpringBoot+SpringCloud+Feign 调用第三方接口,或服务接口

SpringCloud 中文文档

Maven依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

调用第三方接口

//完整url=https://test.cn/user/auth?token=
//然后再自己控制器里面调用此接口就完成了
@FeignClient(name = "test", url = "https://test.cn")
public interface FeignService {

    @RequestMapping(method = RequestMethod.POST, value = "/user/auth",consumes = "application/x-www-form-urlencoded;charset=UTF-8")
    String ssoCheck(String token);
}

如果是调用自己Eureka上服务的接口,也简单的一匹

//服务名=serviceid,也就是你需要调用接口的服务名
//调用方
//然后你在你自己的控制器里面调用此接口。就完成了一次使用feign调用
@FeignClient(value="被调用方的服务名")
public interface UserAuthService {
    @RequestMapping(method = RequestMethod.GET, value = "/user/auth")
    String userAuth(@RequestParam(name="ticket") String ticket);
}

@RestController
public class UserAuthController {
 
    @Autowired
    UserAuthService userAuthService ;
 
    @GetMapping("/user/auth")
    public Result userAuth(String ticket){
        String rs = userAuthService.userAuth(ticket);
        return Result.ok(rs);
    }
}

当然不管调用第三方或者是Eureka上的api都得在启动类上加上@EnableFeignClients注解