当前位置: 首页 > news >正文

RestTemplate使用

RestTemplate使用

  • 一、RestTemplate 概述
  • 二、使用步骤
    • 2.1 添加依赖
    • 2.2 添加配置类
    • 2.3 使用案例
    • 2.4 测试
    • 本文只是简单记录一下,无过多深入拓展

一、RestTemplate 概述

在实际开发中需要调用第三方接口数据,或者是调用另外一个服务接口时,我们可以使用spring 框架提供的 RestTemplate 类可用于在应用中调用 rest 服务,它简化了与 http 服务的通信方式,统一了 restful 的标准,封装了 http 链接, 我们只需要传入 url 及返回值类型即可。

二、使用步骤

2.1 添加依赖

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

2.2 添加配置类

将RestTemplate 交给spring容器管理,方便直接使用

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

2.3 使用案例

@RestController
@RequestMapping("/consumer/depart")
public class DepartController {
    @Autowired
    private RestTemplate restTemplate;

    private static final String SERVICE_PROVIDER = "http://localhost:8081";

    @PostMapping("/save")
    public boolean saveHandle(@RequestBody DepartVO depart) {
        String url = SERVICE_PROVIDER + "/provider/depart/save";
        return restTemplate.postForObject(url, depart, Boolean.class);
    }

    @DeleteMapping("/del/{id}")
    public void deleteHandle(@PathVariable("id") int id) {
        String url = SERVICE_PROVIDER + "/provider/depart/del/" + id;
        restTemplate.delete(url);
    }

    @PutMapping("/update")
    public void updateHandle(@RequestBody DepartVO depart) {
        String url = SERVICE_PROVIDER + "/provider/depart/update";
        restTemplate.put(url, depart, Boolean.class);
    }

    @GetMapping("/get/{id}")
    public DepartVO getHandle(@PathVariable("id") int id) {
        String url = SERVICE_PROVIDER + "/provider/depart/get/" + id;
        return restTemplate.getForObject(url, DepartVO.class);
    }

    @GetMapping("/list")
    public List<DepartVO> listHandle() {
        String url = SERVICE_PROVIDER + "/provider/depart/list/";
        return restTemplate.getForObject(url, List.class);
    }
}

2.4 测试

消费者调用http服务接口
在这里插入图片描述
服务端接收到请求
在这里插入图片描述

本文只是简单记录一下,无过多深入拓展

一文吃透接口调用神器RestTemplate
RestTemplate全网最强总结(永久更新)

相关文章:

  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
  • springboot+学校运动会信息管理 毕业设计-附源码231058
  • 进行日常记账后,怎样导出表格
  • Vue3中组件数据的传递以及更改
  • geoserver2.18(8):添加CSW(网络目录服务)扩展及前端开发调用
  • DOM--页面渲染流程
  • LeetCode 85双周赛(补记)
  • Apache DolphinScheduler PMC:开源不一定也要九死一生
  • SpringMVC之拦截器
  • Linux环境Docker的安装过程
  • 第四章【ADFS集成Exchang实现OWA\ECP单点登录SSO】安装Active Directory联合身份验证服务(AD联合身份验证 ADFS)
  • 公众号查题接口
  • 基于瞬态自适应的麻雀搜索算法
  • PHP 使用 PhpSpreadsheet
  • Pytorch获取特征图
  • python3.6+scrapy+mysql 爬虫实战
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS 7 修改主机名
  • CentOS从零开始部署Nodejs项目
  • css系列之关于字体的事
  • flask接收请求并推入栈
  • React-flux杂记
  • Ruby 2.x 源代码分析:扩展 概述
  • Sublime Text 2/3 绑定Eclipse快捷键
  • tweak 支持第三方库
  • ubuntu 下nginx安装 并支持https协议
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何胜任知名企业的商业数据分析师?
  • 入门级的git使用指北
  • 数组的操作
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 异步
  • 最简单的无缝轮播
  • No resource identifier found for attribute,RxJava之zip操作符
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​比特币大跌的 2 个原因
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###STL(标准模板库)
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (十五)使用Nexus创建Maven私服
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 8.0 中有哪些新的变化?
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net8 Blazor 尝鲜
  • .NET委托:一个关于C#的睡前故事
  • .Net小白的大学四年,内含面经
  • .NET与 java通用的3DES加密解密方法
  • @Autowired标签与 @Resource标签 的区别
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限