系列六、RestTemplate

news2024/11/17 0:18:04

一、RestTemplate

1.1、概述

        RestTemplate是一种便捷的访问RestFul服务的模板类,是Spring提供的用于访问Rest服务的客户端模板工具集,它提供了多种便捷访问远程HTTP服务的方法。

1.2、API

https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html

1.3、如何使用 

        使用restTemplate访问restful接口非常的简单粗暴无脑,直接调用方法即可:

(url, requestMap, ResponseBean.class)这三个参数分别代表REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。例如:

/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/12/29 16:45
 * @Description:
 */
@Slf4j
@RequestMapping("/consumer/payment")
@RestController
public class OrderController {

    public static final String PAYMENT_URL = "http://localhost:8001";

    @Autowired
    private RestTemplate restTemplate;

    @PostMapping("/create")
    public R create(@RequestBody CreatePaymentParam param) {
        return restTemplate.postForObject(PAYMENT_URL + "/payment/create", param, R.class);
    }

    @GetMapping("/getPaymentById/{id}")
    public R getPaymentById(@PathVariable Long id) {
        return restTemplate.getForObject(PAYMENT_URL + "/payment/getPaymentById/" + id, R.class, id);
    }

}

1.4、getForObject & getForEntity

(一) getForObject:返回对象为响应体中数据转化成的对象,基本上可以理解为JSON

(二)getForEntity:返回对象为ResponseEntity对象,包含了响应中的一些重要信息,比如响应头、响应状态码、响应体等

1.5、postForObject & postForEntity 

1.6、GET请求方法

<T> T getForObject(String url, Class<T> responseType, Object... uriVariables);
<T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables); 
<T> T getForObject(URI url, Class<T> responseType);
<T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables);
<T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables);
<T> ResponseEntity<T> getForEntity(URI var1, Class<T> responseType);

1.7、POST请求方法

<T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables); 
<T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables);
<T> T postForObject(URI url, @Nullable Object request, Class<T> responseType);
<T> ResponseEntity<T> postForEntity(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables);
<T> ResponseEntity<T> postForEntity(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables);
<T> ResponseEntity<T> postForEntity(URI url, @Nullable Object request, Class<T> responseType);

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

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

相关文章

【中小型企业网络实战案例 七】配置限速

相关学习文章&#xff1a; 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…

听GPT 讲Rust源代码--compiler(1)

File: rust/compiler/rustc_errors/src/diagnostic_builder.rs 在Rust编译器源代码中&#xff0c;rust/compiler/rustc_errors/src/diagnostic_builder.rs文件的作用是定义错误和警告的构建器&#xff0c;用于生成编译器诊断信息。这个文件是Rust编译器错误报告系统的一部分&am…

8个超高清图片素材网站,免费下载,真的很实用~

图片真的是我们日常生活中必不可少的一部分&#xff0c;大到工作&#xff0c;小到发朋友圈都需要配图&#xff0c;那除了自己拍摄之外&#xff0c;哪里还能找到精美又高清的图片素材呢&#xff1f;本期就给大家整理了8个可免费下载的图片素材网站&#xff0c;真的免费下载&…

【JAVA】AI医疗导诊系统源码

智能导诊系统是一种基于人工智能和大数据技术开发的医疗辅助软件&#xff0c;它能够通过对患者的症状、病史等信息进行计算分析&#xff0c;快速推荐科室和医生。通过简单的描述自身症状&#xff0c;系统即可找到最适合的科室&#xff0c;实现线上高效挂号&#xff0c;线下门诊…

Acrel-EIoT能源物联网云平台助力电力物联网数据服务 ——安科瑞 顾烊宇

摘要&#xff1a;Acrel-EIOT能源物联网云平台是一个结合在线销售的互联网商业模式&#xff0c;为分布广泛的互联网用户提供PAAS服务的平台。安科瑞物联网产品安装完成后&#xff0c;用户可以通过手机扫描代码轻松实现产品访问平台&#xff0c;无需注意调试和平台运行过程&#…

tp5 console.php 里的Console类的init();

1 加载的默认配置文件&#xff1a;/www/wwwroot/xxx/thinkphp/convention.php 3 CONF_PATH 和EXE /www/wwwroot/xxx/thinkphp/base.php 里定义的常量 is_file() 检查指定的文件名是否是正常的文件。 CONF_PATH . command . EXT 路径是&#xff1a;/www/wwwroot/xxx/applicati…

【华为机试】2023年真题B卷(python)-考古问题

一、题目 题目描述&#xff1a; 考古问题&#xff0c;假设以前的石碑被打碎成了很多块&#xff0c;每块上面都有一个或若干个字符&#xff0c;请你写个程序来把之前石碑上文字可能的组合全部写出来&#xff0c;按升序进行排列。 二、输入输出 三、示例 示例1: 输入输出示例仅供…

应急响应事件报告模板

文章目录 一. 项目概述1.1 事件概述1.2 应急响应工作目标1.3 应急响应工作结果1.4 相关人员 二. 应急响应工作流程2.1 检测阶段工作说明2.2 抑制阶段工作说明2.3 根除阶段工作说明2.4 恢复阶段工作说明 三. 总结及安全建议3.1 应急响应总结3.2 相关安全建议 一. 项目概述 1.1 …

厦门大学OpenHarmony技术俱乐部开创“1+N”新模式,加速推动产学研融合

12月29日,OpenHarmony技术俱乐部再添重将——在多方见证下,厦门大学OpenHarmony技术俱乐部在翔安校区益海嘉里楼报告厅正式揭牌成立,现场出席领导及师生代表近千人。 成立仪式现场 OpenHarmony技术俱乐部 携手厦门大学共绘开源生态新图景 OpenHarmony是由开放原子开源基金…

网络安全法解读之思维导图

一、出台背景 二、法律基础 三、网络安全法架构 1、第一章 总则&#xff08;1-14条&#xff09; 2、第二章 网络安全支持与促进&#xff08;15-20条&#xff09; 3、 第三章 网络运行安全&#xff08;21-39条&#xff09; &#xff08;1&#xff09;第一节 一般规定 &#xf…

ArkTS-拖动手势,下拉刷新

PanGesture&#xff08;拖动手势&#xff09; 用于触发拖动手势事件&#xff0c;滑动的最小距离为5vp时拖动手势识别成功。 PanGesture官方解释 示例 import promptAction from ohos.promptActionEntry Component struct Index {StatetranslateY: number 0Statetext: string …

tp8/6 插件PhpOffice\PhpSpreadsheet导入表格

一、安装 composer require phpoffice/phpspreadsheet 官网&#xff1a;phpoffice/phpspreadsheet - Packagist 二、代码 <?php namespace app\services\upload\model; use app\services\BaseServices; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php…

Axure鲜花速递商城网站原型图,花店网站O2O本地生活电商平台

作品概况 页面数量&#xff1a;共 30 页 兼容软件&#xff1a;仅支持Axure RP 9/10&#xff0c;非程序软件无源代码 应用领域&#xff1a;鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板&#xff0c;高保真高交互&#xff0c;属于O2O本地生活电…

python 深度学习 记录遇到的报错问题10

本篇继python 深度学习 解决遇到的报错问题9_module d2l.torch has no attribute train_ch3-CSDN博客 一、CUDA error: no kernel image is available for execution on the device CUDA kernel errors might be asynchronously reported at some other API call,so the stackt…

跟cherno手搓游戏引擎【1】:配置与入口点

环境配置&#xff1a; 编译环境&#xff1a;VS2019 创建两个项目&#xff1a; 设置Sandbox为启动项&#xff1a; 设置sandbox的配置属性-常规-输出目录\中间目录为如下&#xff1a; 预处理定义&#xff1a;为了配置一些只有windows才能用的函数。 设置YOTOEngin&#xff08;我…

LeetCode 每日一题 Day 28293031 ||三则模拟||找循环节(hard)

1185. 一周中的第几天 给你一个日期&#xff0c;请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数&#xff1a;day、month 和 year&#xff0c;分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday…

Cam4DOcc: 基于摄像头的4D占据网格预测的自动驾驶应用

文章&#xff1a;Cam4DOcc: Benchmark for Camera-Only 4D Occupancy Forecasting in Autonomous Driving Applications 作者&#xff1a;Junyi Ma, Xieyuanli Chen , Jiawei Huang, Jingyi Xu, Zhen Luo, Jintao Xu, Weihao Gu, Rui Ai, Hesheng Wang 编辑&#xff1a;点云P…

Python高效编程:十招实用技巧大揭秘!

文章目录 1\. 代码优化与高效数据结构2\. 列表推导式和生成器表达式3\. 使用装饰器和上下文管理器4\. 多线程和多进程5\. 函数式编程和Lambda函数6\. 内置模块与标准库7\. 文件处理与I/O操作8\. 调试和性能优化工具9\. 文档化与测试10\. 并发编程与异步技术总结Python技术资源分…

UE4.27.2 网页串流

1、和Unity串流一样安装Node.js 下载地址https://nodejs.org/ 2、下载安装Epic Games启动程序https://www.unrealengine.com/zh-CN/download 3、安装UE4.7.2 4、这里就不安装像素流送演示&#xff0c;选个别的然后创建工程 5、启用PixelStreaming插件 6、设置额外启动参数&am…

开发手机中控软件:从零开始的代码之旅!

在这个智能化风靡的时代&#xff0c;手机中控软件成为了许多人的梦想&#xff0c;通过一款软件&#xff0c;我们可以轻松地控制家中的各种智能设备&#xff0c;实现智能家居的美好愿景。 但是&#xff0c;开发手机中控软件并非易事&#xff0c;需要具备一定的编程知识和技能&a…