重生之 SpringBoot3 入门保姆级学习(22、场景整合 远程调用阿里云天气服务获取天气)

本文主要是介绍重生之 SpringBoot3 入门保姆级学习(22、场景整合 远程调用阿里云天气服务获取天气),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

重生之 SpringBoot3 入门保姆级学习(22、场景整合 远程调用阿里云天气服务获取天气)

    • 6.3 远程调用三方 API

6.3 远程调用三方 API


1、创建项目时需要选择 Spring Reactive Web

image-20240615154112116

2、0元购买天气服务 API ,我这里买了是生产中没有购买的话会显示 购买

https://market.aliyun.com/apimarket/detail/cmapi010812?spm=5176.730005.result.4.2e3c35249rw86S

image-20240615165002981

2、查看自己的 AppCode

https://market.console.aliyun.com/?spm=5176.28663977.aliyun_market_home_panel.4.6cf24d50it1sxH

image-20240615170542984

3、编写代码实现功能

  • WeatherController
package com.zhong.rpc.controller;import com.zhong.rpc.service.WeatherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;/*** @ClassName : WeatherController* @Description : 天气查询* @Author : zhx* @Date: 2024-06-15 16:17*/
@RestController
public class WeatherController {@AutowiredWeatherService weatherService;@GetMapping("/weather")public Mono<String> weather(@RequestParam("city") String city) {// 查询天气return  weatherService.weather(city);}
}
  • WeatherService
package com.zhong.rpc.service;import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;import java.util.HashMap;/*** @ClassName : WeatherService* @Description :* @Author : zhx* @Date: 2024-06-15 16:19*/
@Service
public class WeatherService {public Mono<String> weather(String city) {// 远程调用阿里云服务 API// 1、创建 WebClientWebClient webClient = WebClient.create();// 2、定义请求行为HashMap<String, String> params = new HashMap<>();params.put("area", city);return webClient.get().uri("https://ali-weather.showapi.com/area-to-id?area={area}", params).accept(MediaType.APPLICATION_NDJSON)   // 定义响应的内容类型.header("Authorization", "APPCODE ???") // 步骤 2 查看到的 AppCode 填充 ??? 号.retrieve().bodyToMono(String.class);}
}

4、浏览器测试

http://localhost:8080/weather?city=内江

image-20240615171254496

这篇关于重生之 SpringBoot3 入门保姆级学习(22、场景整合 远程调用阿里云天气服务获取天气)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065603

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令