欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > springboot3访问第三方接口

springboot3访问第三方接口

2024/12/21 23:49:54 来源:https://blog.csdn.net/weixin_54063136/article/details/144511458  浏览:    关键词:springboot3访问第三方接口

添加依赖(如果尚未添加)

pom.xml文件中,确保已经包含spring-boot-starter-web依赖,因为RestTemplate通常在这个依赖范围内。如果没有,添加如下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

    - **配置`RestTemplate`(有多种方式,这里展示一种简单的Bean配置方式)**:
     - 在一个配置类(例如`AppConfig.java`)中,通过`@Configuration`注解将其标记为配置类,然后定义`RestTemplate`的Bean。示例如下:
       ```java

       import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;@Configurationpublic class AppConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}

在服务类中使用RestTemplate访问第三方接口

假设要访问一个天气查询接口(以高德地图天气接口https://restapi.amap.com/v3/weather/weatherInfo为例),创建一个服务类(例如WeatherService.java)。示例如下:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.{insert\_element\_0\_c3RlcmVvdHlwZS4=}Service;
import org.springframework.web.client.RestTemplate;@Service
public class WeatherService {private final RestTemplate restTemplate;@Autowiredpublic WeatherService(RestTemplate restTemplate) {this.restTemplate = restTemplate;}public String getWeatherData(String city, String apiKey) {String url = "https://restapi.amap.com/v3/weather/weatherInfo?city=" + city + "&key=" + apiKey;ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);return response.getBody();}
}

    - 在上述代码中:
       - 首先通过构造函数注入`RestTemplate`。
       - 然后在`getWeatherData`方法中,构建了请求的URL,包含城市名称(`city`)和API密钥(`apiKey`)等参数。使用`restTemplate.getForEntity`方法发送GET请求,获取`ResponseEntity`对象,最后返回响应体的内容(即天气数据)。
   - **在控制器中调用服务方法(以暴露接口供外部访问)**:
     - 创建一个控制器类(例如`WeatherController.java`)。示例如下:
       ```java

       import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/weather")public class WeatherController {private final WeatherService weatherService;@Autowiredpublic WeatherController(WeatherService weatherService) {this.weatherService = weatherService;}@GetMapping("/data")public String getWeatherData(@RequestParam("city") String city, @RequestParam("key") String key) {return weatherService.getWeatherData(city, key);}}
  • 在这个控制器中,同样通过构造函数注入WeatherService。定义了一个/weather/data的 GET 请求接口,通过@RequestParam注解获取城市名称和 API密钥参数,然后调用WeatherServicegetWeatherData方法获取天气数据并返回。

操作完以上代码使用postman测试:

 请求接口地址:http://localhost:8888/weather/data?city=城市&key=xxxxxxxxxxxxx

官方地址:天气查询-基础 API 文档-开发指南-Web服务 API | 高德地图API

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com