gpt4 book ai didi

java - 为 Spring Controller 自动生成客户端

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:25 24 4
gpt4 key购买 nike

TL;DR:为每个 REST Spring Controller 自动生成 HTTP 客户端,以在使用 Spring 编写的其他服务中重用。

在处理多个用 spring 编写的微服务时,我发现自己要为每个 Controller 重写客户端。假设我在服务 X 中编写了一个 Controller :

@RestController
public class SubscriptionController {

@Autowired
private SubscriptionService subscriptionService;

@RequestMapping(value = "/subscription", method = RequestMethod.GET)
public SubscriptionDTO getMySubscription() {
return subscriptionService.getCurrentUserSubscription();
}

}

我将在服务 Y 中导入 DTO,将 HTTP 请求写入另一个服务中定义的映射,并为其编写测试。

@Service
public class SubscriptionApiService {

@Autowired
private HttpClient httpClinet;

public SubscriptionDTO getMySubscription() {
return httpClient.get("/subscription", SubscriptionDTO.class);
}

}

这是一个非常重复的过程,我很确定有人已经编写了一个库来自动化这个过程。但是我找不到类似的东西。有什么想法吗?

最佳答案

您可以使用 Swagger2 实现此目的

@SpringBootApplication
@EnableSwagger2
public class Application extends SpringApplication {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

您可以通过此 url 访问 Swagger2 html:localhost:8080/swagger-ui.html

我还 @ComponentScan 我的包,这些是 Swagger2 所需的依赖项:

    <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>

关于java - 为 Spring Controller 自动生成客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41803132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com