mcpField
H
http-interface-clients

http-interface-clients

github.com/rrezartprebreza开发32850 次安装6 天前更新
代码仓库

关于 http-interface-clients

面向 Spring Boot 3 的声明式 HTTP 接口客户端开发技能,介绍代理的显式注册及客户端层配置,适用于对接外部服务的团队。

主要功能

  1. 01将 @HttpExchange 代理注册为 Bean
  2. 02使用 WebClientAdapter 处理响应式 API
  3. 03配置 URL、超时和身份验证
  4. 04在适配层转换传输错误
  5. 05复用单例客户端代理

适用场景

  1. 01为外部服务构建类型化客户端
  2. 02通过 Mono 或 Flux 提供响应式 HTTP 调用
  3. 03避免在注解中写死远程 URL
  4. 04防止传输错误泄漏到领域代码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rrezartprebreza/spring-boot-skills --skill http-interface-clients

安装后在 Claude Code 中输入/http-interface-clients确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
examples/
bad-order-client.java
good-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