以下是一个示例解决方案,使用Spring Boot和RestTemplate来消费其他API并转发响应。
首先,您需要创建一个名为ApiController的控制器类,它将负责处理来自客户端的请求并消费其他API。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/forward")
public ResponseEntity forwardRequest() {
String apiUrl = "https://api.example.com/endpoint"; // 替换为要消费的API的URL
ResponseEntity response = restTemplate.getForEntity(apiUrl, String.class);
return response;
}
}
接下来,您需要在Spring Boot应用程序的主类中配置RestTemplate bean。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
在上面的示例中,我们使用RestTemplate的getForEntity方法来发送GET请求并获取响应。您可以根据需要使用其他RestTemplate方法,例如postForEntity或exchange等。
确保将"https://api.example.com/endpoint"替换为您要消费的实际API的URL。
在您的应用程序运行时,您可以访问“/api/forward”端点来触发ApiController中的forwardRequest方法,并将消费的API的响应转发给客户端。