关于 http-interface-clients
面向 Spring Boot 3 的声明式 HTTP 接口客户端开发技能,介绍代理的显式注册及客户端层配置,适用于对接外部服务的团队。
主要功能
- 01将 @HttpExchange 代理注册为 Bean
- 02使用 WebClientAdapter 处理响应式 API
- 03配置 URL、超时和身份验证
- 04在适配层转换传输错误
- 05复用单例客户端代理
适用场景
- 01为外部服务构建类型化客户端
- 02通过 Mono 或 Flux 提供响应式 HTTP 调用
- 03避免在注解中写死远程 URL
- 04防止传输错误泄漏到领域代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rrezartprebreza/ spring-boot-skills --skill http-interface-clients安装后在 Claude Code 中输入/http-interface-clients确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/bad-order-client.javagood-order-client.java详细介绍
声明式 HTTP 接口客户端(Boot 3)
Spring Framework 6 支持 @HttpExchange 接口,但 Boot 3 不提供 Boot 4 的
@ImportHttpServices 分组自动注册功能。请显式构建客户端适配器。
@HttpExchange("/orders")
interface OrderApiClient {
@GetExchange("/{id}")
OrderDto get(@PathVariable UUID id);
}
@Configuration
class ClientConfig {
@Bean
OrderApiClient orderApiClient(RestClient.Builder builder,
@Value("${clients.orders.base-url}") String baseUrl) {
RestClient client = builder.baseUrl(baseUrl).build();
HttpServiceProxyFactory factory =
HttpServiceProxyFactory.builderFor(RestClientAdapter.create(client)).build();
return factory.createClient(OrderApiClient.class);
}
}
对于返回 Mono 或 Flux 的响应式接口,请使用 WebClientAdapter。在客户端适配器层配置基础 URL、
超时、身份验证和错误转换,而不要在控制器或领域服务中配置。优先为每个外部服务配置一个工厂/配置器。
注意事项
- Agent 使用
@ImportHttpServices——该 Boot 4 注册 API 在 Boot 3 中不可用。 - Agent 为接口添加
@Component或实现——请将生成的代理注册为 Bean。 - Agent 对
Mono或Flux使用RestClient——响应式返回类型请使用WebClientAdapter。 - Agent 在注解中硬编码远程主机——请将 URL 放在配置中。
- Agent 让传输错误泄漏到领域层——请在客户端适配器中转换这些错误。
- Agent 为每个请求创建一个新客户端——请配置并复用单例代理。
评论
支持 Markdown