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…

Python 爬虫

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

idea项目导入gitee 码云

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

基于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…

WebP Vs. PNG:哪种图像格式适合您的网站?

图像对任何网站都至关重要,可以增强视觉吸引力和用户体验。但是,图像也会显着影响网站的加载时间,因此必须针对 Web 使用对其进行优化。一种方法是使用正确的图像格式。

mysql乱码、mysql数据中文问号

网上排出此错误方法的很多&#xff0c;但是 都不简洁&#xff0c;找不到根本原因 主要排查两点&#xff1a; 1.代码中jdbc链接的编码规则 urljdbc:mysql://localhost:3306/title?useUnicodetrue&amp;characterEncodingutf8 将characterEncoding设置为utf8 2.设置mysq…

INT303 Big Data Analytics 笔记

Lecture1 Introduction 不考&#xff01; “Data Mining is the study of collecting, processing, analyzing, and gaining useful insights from data” EXPLORATORY ANALYSIS Make measurements to understand what the data looks like first steps when collecting da…

Unity3D仿星露谷物语开发12之创建道具列表

1、目标 道具是游戏的核心部分&#xff0c;道具包括你可以拾取的东西&#xff0c;你可以使用的工具和你能种的东西等。 本节就是创建道具的信息类。同时了解ScriptableObject类的使用。 2、创建道具枚举类 修改Assets -> Scripts -> Enums.cs脚本&#xff0c; 新增如…

如何修复 WordPress 中的“Error establishing a database connection”问题

如何修复 WordPress 中的“Error establishing a database connection”问题 在使用 WordPress 建站时&#xff0c;如果你看到“Error establishing a database connection”的提示&#xff0c;不要慌张。这通常意味着网站无法连接到数据库&#xff0c;因此无法显示内容。下面…

SQL 基础教程 - SQL SELECT 语句

SQL SELECT DISTINCT 语句 SELECT DISTINCT 语句用于返回唯一不同的值。 在表中&#xff0c;一个列可能会包含多个重复值&#xff0c;有时您也许希望仅仅列出不同&#xff08;distinct&#xff09;的值。 DISTINCT 关键词用于返回唯一不同的值。 SQL SELECT DISTINCT 语法 …