Spring Boot教程之四十一:在 Spring Boot 中调用或使用外部 API

如何在 Spring Boot 中调用或使用外部 API?

Spring Boot 建立在 Spring 之上,包含 Spring 的所有功能。它现在越来越受到开发人员的青睐,因为它是一个快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置。Spring Boot 是一个基于微服务的框架,在其中创建生产就绪的应用程序只需很少的时间。在这里,我们将学习如何创建一个使用外部 API 的 Spring Boot 应用程序。在本课程中,我们将经历以下阶段:

程序:

  1. 创建 Spring Boot 项目。
  2. 创建 Rest 控制器并映射 API 请求。
  3. 构建并运行项目。
  4. 调用外部API服务并测试。

现在让我们在视觉辅助的帮助下将每个步骤自动化到细节,以便 

步骤1:创建Spring Boot项目

首先,访问网站并创建一个 spring boot 项目。您也可以使用 Dependencies 部分添加另一个依赖项。这里我们不需要任何其他依赖项。 

记住:可以通过单击“生成”选项卡下载 Spring Boot 项目。

创建 Spring Boot 项目

下载项目后将其导入 Eclipse IDE,示例将如下所示:

Spring Boot 项目

注意: pom.xml 包含项目所需的所有依赖项,如下所示:

pom.xml

第 2 步:创建 Rest 控制器并映射 API 请求

现在,让我们在 Rest Controller 类中创建一个示例 Rest API 调用。此调用将仅返回“Hello world”作为输出。我们将使用此 API 并在同一个应用程序中调用它。

示例 Hello world API

步骤 3:构建并运行项目

我们可以通过启动 Spring Boot 应用程序来检查输出。

正在启动应用程序

现在打开 Postman 并向指定的 URL 发送 GET 请求:http://localhost:8080/hello

我们的示例“hello”API服务在localhost:8080上运行。现在我们将看到如何使用Rest模板调用此服务。

步骤 4:调用外部 API 服务并测试

在调用外部 API 之前,请确保首先了解 Rest 模板是什么,如下所述:

Rest Template 是 Spring 的核心类,用于创建使用 RESTful Web 服务的应用程序。您可以使用 Rest Template 类中提供的方法使用所有 HTTP 方法的 Web 服务。

  • 这里我们将 GetMapping 指定为“callclienthello”,以便外部呼叫可在该分机上使用。 
  • 接下来,定义可访问您的服务的客户端 URI。 
  • 创建 Rest Template 对象,然后使用getForObject方法可以调用定义的服务。 
  • 现在我们的“hello”服务也将在扩展“callclienthello”上提供。 
  • 我们来测试一下,生成的输出如下:

如您所见,我们获得的输出与示例“hello”API调用的输出相同。现在让我们看另一个示例,其中我们将调用可通过互联网使用的外部API。例如“https://restcountries.eu/rest/v2/all”。如果我们现在发送给定国家/地区API的请求,那么它将返回国家/地区列表,然后我们将从Postman对其进行测试,如下图所示

现在,我们将从我们的 spring boot 应用程序中调用这个国家 API。

在这里,我将 Get Mapping 指定为“国家”,以便我们可以使用该扩展进行外部调用。我们定义了一个外部 API,我们想在 URL 中使用该 API 进行调用。让我们通过发送请求在 Postman 中查看输出:

如您所见,Countries API 即“https://restcountries.eu/rest/v2/all”,现在可在扩展“countries”上使用。通过这种方式,您可以使用 Spring Rest Template 类调用外部 API 服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/891314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5实现好看的新年春节元旦网站源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 新年由来界面1.3 文章详细界面1.4 登录界面1.5 注册界面1.6 新年图册界面1.7 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的新年春节元旦网站源码,春节新…

Python学习(5):数据结构

1 列表 1.1 列表方法 列表数据类型支持很多方法,列表对象的所有方法所示如下: list.append(x):在列表末尾添加一项。 类似于 a[len(a):] [x]。list.extend(iterable):通过添加来自 iterable 的所有项来扩展列表。 类似于 a[len…

2021.12.28基于UDP同信的相关流程

作业 1、将TCP的CS模型再敲一遍 服务器 #include <myhead.h> #define PORT 8888 #define IP "192.168.124.123" int main(int argc, const char *argv[]) {//创建套接字//绑定本机IP和端口号//监听客户端请求//接收客户端连接请求//收发消息//创建套接字int…

2024年RAG:回顾与展望

2024年&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术经历了从狂热到理性的蜕变&#xff0c;成为大模型应用领域不可忽视的关键力量。年初&#xff0c;AI的“无所不能”让市场充满乐观情绪&#xff0c;RAG被视为解决复杂问题的万能钥匙&#xff1…

《量子AI:突破量子比特稳定性与容错性的关键瓶颈》

在量子计算的发展进程中&#xff0c;量子比特的稳定性和容错性问题一直是阻碍其走向广泛应用的关键障碍。量子AI作为前沿技术&#xff0c;正积极探索各种途径来攻克这些难题。 量子纠错&#xff1a;守护量子比特的精准防线 量子纠错是解决量子比特稳定性和容错性问题的核心技…

Python 爬虫

一、创建项目 1.双击打开pycharm&#xff0c;点击新建项目 2.项目设置- 勾选[继承全局站点软件包]- 勾选[可用于所有项目]- 取消勾选[创建main.py欢迎脚本]- 点击创建 3.项目名称右键--新建--python文件 4.输入文件名--回车二、编辑代码 # 导入请求模块 import requests # 如…

【信息系统项目管理师】高分论文:论信息系统项目的沟通管理(银行绩效考核系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划沟通管理2、管理沟通3、监督沟通论文 2022年3月,我参加了XX省商业银行绩效考核系统项目的建设,担任了项目经理的角色,该项目投资共100万元人民币,建设工期为一年。通过该项目的建设实现了从多角…

【环境配置】Jupyter Notebook切换虚拟环境

在Jupyter Notebook中是可以切换虚拟环境的&#xff0c;以下是几种常见的方法&#xff1a; 方法一&#xff1a;使用nb_conda_kernels扩展&#xff08;适用于Anaconda环境&#xff09; 安装 如果你使用的是Anaconda环境&#xff0c;首先确保你已经安装了 nb_conda 包。如果没…

idea项目导入gitee 码云

1、安装gitee插件 IDEA 码云插件已由 gitosc 更名为 gitee。 1 在码云平台帮助文档http://git.mydoc.io/?t153739上介绍的很清楚&#xff0c;推荐前两种方法&#xff0c; 搜索码云插件的时候记得名字是gitee&#xff0c;gitosc已经搜不到了。 2、使用码云托管项目 如果之…

云计算在医疗行业的应用

云计算在医疗行业的应用广泛而深入&#xff0c;为医疗服务带来了前所未有的变革。以下是对云计算在医疗行业应用的详细解析&#xff1a; ### 一、医疗数据共享与整合 云计算平台具有强大的数据存储和处理能力&#xff0c;使得医疗数据共享与整合成为可能。通过云计算平台&…

基于JAVA+SpringBoot+Vue的机动车号牌管理系统

基于JAVASpringBootVue的机动车号牌管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; …

活动预告 |【Part1】Microsoft Azure 在线技术公开课:基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;基础知识”活动&#xff0c;培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动&#xff0c;扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 活…

郑州时空-TMS运输管理系统 GetDataBase 信息泄露漏洞复现

0x01 产品简介 郑州时空-TMS运输管理系统是一款专为物流运输企业设计的综合性管理软件,旨在提高运输效率、降低运输成本,并实现供应链的协同运作。系统基于现代计算机技术和物流管理方法,结合了郑州时空公司的专业经验和技术优势,为物流运输企业提供了一套高效、智能的运输…

当下热点系列 篇二:大消费题材解析和股票梳理

文章目录 系列文章题材解析食品饮料白酒与酒类乳制品及奶酪生活用纸调味品及腌制食品酵母及生物制品现场演艺及文化旅游股票梳理系列文章 当下热点系列 篇一:首发经济题材解析和股票梳理 题材解析 食品饮料 概念概览:涵盖日常饮食中的各类饮品和加工食品,包括能量饮料、植…

BUUCTF Pwn ciscn_2019_es_2 WP

1.下载 checksec 用IDA32打开 定位main函数 发现了个假的后门函数&#xff1a; 看看vul函数&#xff1a; 使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造 所以使用栈迁移&#xff1a; 栈迁移需要用到leave ret 使用ROPgadget找地址&#xff1a; …

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录 1、综述2、sceneview.qualitySettings2.1、sceneview.qualitySettings.memoryLimit2.2、lodFactor2.3 additionalCacheMemory 3、结论 1、综述 先上重点&#xff0c;SceneView.qualitySettings为隐藏对象参数&#xff0c;该对象的memoryLimit和lodFactor等值&#xff0c;…

【SQL Server】教材数据库(1)

1 利用sql建立教材数据库&#xff0c;并定义以下基本表&#xff1a; 学生&#xff08;学号&#xff0c;年龄&#xff0c;性别&#xff0c;系名&#xff09; 教材&#xff08;编号&#xff0c;书名&#xff0c;出版社编号&#xff0c;价格&#xff09; 订购&#xff08;学号…

RP2040 C SDK I2C外设使用

RP2040 C SDK I2C外设使用 &#x1f4cc;相关篇《RP2040 VSCode C/C开发环境快速部署》&#x1f4cd;I2C API 外设&#xff1a;https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#group_hardware_i2c&#x1f527;驱动I2C ssd1306 屏幕需要使用到的库&#xf…

模仿微信小程序wx.showModal自定义弹窗,内容可以修改

实现以下弹框样式功能 1.在components新建一个文件showModel.wpy作为组件&#xff0c;复制下面代码 <style lang"less" scoped> .bg_model {display: flex;justify-content: center;align-items: center;// 弹框背景.bg_hui {width: 100%;height: 100%;posi…

二十三种设计模式-工厂方法模式

工厂方法模式是一种创建型设计模式&#xff0c;其核心思想是通过定义一个创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法模式将对象的实例化推迟到子类中进行&#xff0c;从而使得扩展变得容易&#xff0c;而不需要修改现有的代码&#xff0c;符合开闭原则&…