Springboot实现调用接口(使用RestTemplate)

一、在启动类配置RestTemplate

    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

二、引入json的依赖(获取response body可以用到)

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

三、依赖注入

    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private ObjectMapper objectMapper;

四、调接口

	String url = "";
	//设置请求头
	HttpHeaders httpHeaders = new HttpHeaders();
	httpHeaders.add("honeycombToken", "");
	//设置请求体
	HashMap<String, String> map = new HashMap<>();
	map.put("", "");
	map.put("", "");
	// 将请求头和请求体封装到HttpEntity中
	HttpEntity<HashMap<String, String>> hashMapHttpEntity = new HttpEntity<>(map,httpHeaders);
	//发送post请求
	ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, hashMapHttpEntity, String.class);
	// 将返回的JSON字符串解析为JsonNode对象
	JsonNode jsonNode = objectMapper.readTree(response.getBody());
	//获取指定的字段名token
	String token = jsonNode.get("data").get("token").toString();
### 如何使用 Spring Boot RestTemplate 调用 Flask API 为了实现这一目标,需要配置 `RestTemplate` 并编写服务层逻辑来执行 HTTP 请求。假设 Flask 提供了两个 RESTful API 接口 `/api/data` 支持 GET 方法获取数据和支持 POST 方法添加新数据。 #### 配置 RestTemplate Bean 在 Spring Boot 中可以通过定义一个 `@Bean` 来创建并配置 `RestTemplate` 实例: ```java @Configuration public class AppConfig { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } } ``` #### 编写 Service 类调用外部 API 下面是一个简单的 Java 服务类例子,展示了如何利用上述配置好的 `RestTemplate` 对象向 Flask 发送请求: ```java @Service public class DataService { private final String BASE_URL = "http://localhost:5000/api/data"; @Autowired private RestTemplate restTemplate; /** * 获取所有数据列表. */ public List<Data> getAllData() { ResponseEntity<List<Data>> responseEntity = restTemplate.exchange( BASE_URL, HttpMethod.GET, null, new ParameterizedTypeReference<List<Data>>() {} ); return Objects.requireNonNull(responseEntity.getBody()); } /** * 添加新的数据项. */ public Data addNewData(Data newData) { HttpEntity<Data> requestEntity = new HttpEntity<>(newData); ResponseEntity<Data> responseEntity = restTemplate.postForEntity(BASE_URL, requestEntity, Data.class); return Objects.requireNonNull(responseEntity.getBody()); } } ``` 这里假定 Flask 返回的数据结构已经被映射到名为 `Data` 的实体类中,并且该类具有相应的 getter/setter 方法以及默认构造函数。 通过这种方式就可以方便地从 Spring Boot 应用程序内部访问由 Python Flask 构建的服务端点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值