kards中文最新版本
923.11GB · 2025-09-23
之前分享过一篇文章【像调用接口一样调用第三方API】,今天迎来了新成员Retrofit
。
retrofit-spring-boot-starter
是一个基于 Spring Boot
的 starter
,它简化了 Retrofit
在 Spring
环境中的集成和使用。Retrofit 本身是一个类型安全的 HTTP 客户端库,而该 starter
让其能够无缝融入 Spring Boot
项目,提供自动配置、依赖注入等特性。
GitHub
地址:github.com/LianjiaTech…
Gitee
地址:gitee.com/lianjiatech…
本文采用的是retrofit-spring-boot-starter 3.2.0
,SpringBoot
的版本影响着依赖的引入。
<dependency>
<groupId>com.github.lianjiatech</groupId>
<artifactId>retrofit-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
接口必须使用@RetrofitClient
注解标记!
@RetrofitClient(baseUrl = "http://shanhe.kim/api/")
public interface ShanheRetrofitClient {
@GET("za/xingzuo.php")
String getXingZuo(@Query("msg") String xinZuo);
@GET("za/phonegj.php")
String phoneGj(@Query("phone") String phone);
@GET("qq/xiongji.php")
String qqxiongJi(@Query("qq") String qq);
@GET("wz/ymgj.php")
String domainGj(@Query("url") String url);
}
这里需要说明的是baseUrl
必须以/
结尾,否则可能会出现接口404
,是因为接口地址被截断了,官方专门做了说明,小编也踩坑了。
@Autowired
private ShanheRetrofitClient shanheRetrofitClient;
@Test
void retrofitClientTest() {
String xingZuo = shanheRetrofitClient.getXingZuo("双鱼");
System.out.println("星座:" + xingZuo);
System.out.println("--------------------------------");
String phoneGj = shanheRetrofitClient.phoneGj("15268595589");
System.out.println("手机估值:" + phoneGj);
System.out.println("---------------------------------");
String qqxiongJi = shanheRetrofitClient.qqxiongJi("585984585");
System.out.println("QQ吉凶:" + qqxiongJi);
System.out.println("--------------------------------");
String domainGj = shanheRetrofitClient.domainGj("baidu.com");
System.out.println("域名估值:" + domainGj);
}
测试结果都是OK的。
小编这里没有任何的配置,就值了直接调用成功。
默认情况下,自动使用SpringBoot
扫描路径进行RetrofitClient
注册,可以在配置类加上@RetrofitScan
手动指定扫描路径。
详细可以参考官方文档:Retrofit官方文档
官方提供了很多扩展功能:
这里挑两个小编比较感兴趣的说明一下。
请求重试是接口可用性的的一节指标,可以防止网络抖动等。只需要简单的配置,就可以完成。
# 重试次数
retrofit.global-retry.max-retries=2
# 开启重试:默认fasle
retrofit.global-retry.enable=true
# 重试间隔
retrofit.global-retry.interval-ms=2000
# 重试规则
retrofit.global-retry.retry-rules[0]=response_status_not_2xx
我们将接口路径改成不可访问的,看看结果:
框架可以提供日志的颗粒度打印
# 打印Header日志
retrofit.global-log.log-strategy=headers
日志策略:
我们可以看到打印了Header
的日志:
其他的功能大家可以自行试试。
retrofit-spring-boot-starter 3.x
提供了现代化、生产就绪的 HTTP 客户端解决方案。通过与 Spring Boot 3.x
的深度集成,它简化了分布式系统间的服务调用,提供了丰富的功能和灵活的配置选项。
赶快去试试吧!