Feign调用远程的接口
1.pom的引入
<!-- openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
2.调用别人的接口我们要知道别人接口的类型
3.编写自己server类 (接口类似 :http://127.10.00.25:7001/eureka)
@Component
@FeignClient(value = "api", url = "接口")
public interface UserFeignService {
@RequestMapping(value = "/login/login", method = RequestMethod.POST)
FeignResultInfo<?> login(@Valid @RequestBody LoginVo login);
}
4.编写Controller类
@RestController
public class LoginController {
@Autowired
private UserFeignService userFeignService;
@RequestMapping(value = "/login/login", method = RequestMethod.POST)
FeignResultInfo<?> login(@Valid @RequestBody LoginVo login){
return userFeignService.login(login);
}
5、如果需要吧接口配置到yml配置文件
yml需要添加如下代码
renyb-http:
base: http://127.10.00.25:7001/eureka
将server中@FeignClient(value = “api”, url = “接口”)改为
@FeignClient(value = "api", url = "url = "${renyb-http.base}/auth")
注意 :
1.FeignResultInfo 这是提供接口的小可爱编写的展示类
2. LoginVo 是对应页面现实的一个数据类
3. 表单验证@NotBlank 和@Valid 搭配使用
@Data
public class LoginVo {
@NotBlank(message = "用户名不能为空")
private String name;
@NotBlank(message = "密码不能为空")
private String password;
@NotBlank(message = "验证不能为空")
private String code;
}
``
@Data
public class FeignResultInfo<P> {
private String resultType;
private String message;
}
记录自己遇到的问题 如有不对 还请大佬指出
==================================================================每天进步一点 ,学无止境