首页 > 其他分享 >在一个系统中访问另一个系统的接口

在一个系统中访问另一个系统的接口

时间:2024-07-31 11:23:57浏览次数:8  
标签:HTTP String 系统 RestTemplate 接口 class 访问 return public

当我们需要对两个系统的进行数据交互的时候,我们可能需要在一个系统中调用另一个系统的接口来进行数据的交互。

下面是在一个系统中调用另一个系统接口的简单例子。

被调用系统(系统A)的接口以及配置:

后端的端口号:9091

被调用的接口:

@Controller
public class index {
    @RequestMapping("/index")
    @ResponseBody
    public String index(){

        String a = "项目B启动成功!";
        return a;
    }
}

我们在另一个系统中调用系统A的这个接口

1、配置RestTemplate实例,用于发送HTTP请求,访问另一个系统的API

package com.example.springboottest01.test.config;

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

//配置类:用于配置RestTemplate实例,用于发送HTTP请求,访问另一个系统的API
@Configuration
public class AppConfig {

    /**
     * 创建并返回一个RestTemplate实例。
     *
     * 该方法使用@Bean注解,表明它返回的对象将被Spring容器管理为一个bean。RestTemplate是一个用于发送HTTP请求并处理响应的工具类,
     * 在这里创建它是为了在应用程序中方便地进行HTTP客户端操作。
     *
     * @return 返回一个新的RestTemplate实例,用于执行HTTP请求。
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
}

2、Controller层

这里使用@CrossOrigin注解来解决跨域的问题

@CrossOrigin
@RestController
public class TriggerTestController {

    @Autowired
    private ProjectBService projectBService;
 
    @GetMapping("/test02")
    public String button02() throws Exception {
        String messageFromProjectB = projectBService.getIndexMessage();
        return "从项目B获取的信息: " + messageFromProjectB;

    }

3、Service层

在Spring框架中,RestTemplate 是一个用于同步client-side HTTP请求的工具类。它简化了与HTTP服务的通信,并提供了多种方法来处理HTTP请求和响应。

getIndexMessage 方法中的 RestTemplate 使用:

  • String url = “http://localhost:9091/index”;

    • 定义了要访问的服务端点URL。
  • return restTemplate.getForObject(url, String.class);

    • getForObject 是 RestTemplate 的一个方法,用于发送一个HTTP GET请求到指定的URL,并返回响应体的内容。
    • 第一个参数是URL,即我们要请求的服务地址。
    • 第二个参数是响应需要被转换的目标类型。在这个例子中,我们期望返回一个字符串,因此传递了 String.class
    • 这个方法内部会处理HTTP请求的发送和响应的接收,并将响应体转换为指定的类型(在这个例子中是字符串)。
@Service
public class ProjectBService {

    @Autowired
    private RestTemplate restTemplate;

    public String getIndexMessage() {
        String url = "http://localhost:9091/index"; // 项目B的地址和端口
        return restTemplate.getForObject(url, String.class);
    }
}

标签:HTTP,String,系统,RestTemplate,接口,class,访问,return,public
From: https://blog.csdn.net/m0_65520060/article/details/140730264

相关文章

  • 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格......
  • 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格......
  • 手写操作系统:二级引导程序
    项目简介在上篇博客,我们完成了主引导扇区的编写,在主引导扇区我们初始化了寄存器,加载了二级引导程序到内存地址0x8000处,并跳转至0x8000处执行,在本文我们将继续编写二级引导程序。在二级引导程序将完成以下任务检测内存容量打开A20地址线设置全局段描述符表进入保护模式......
  • 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格......
  • 尝试通过Python访问.zip文件中的.gz文件
    我有一个包含大量.gz文件的.zip文件,我需要对其进行处理。我想打开.zip,我可以通过以下代码轻松完成:zf=zipfile.ZipFile("file.zip","r")forgzfileinzf.filelist:withgzip.GzipFile(fileobj=zf.open(gzfile.filename,"r"),mode="r")asf:df......
  • 基于java jsp ssm医院预约挂号管理系统
    前言......
  • 基于java jsp ssm医院人事档案排班,打卡,试用期,请假离职工资管理系统
    前言......
  • 园区人员定位怎么做?分享智慧园区人员定位系统解决方案
    如今人工智能、物联网、大数据、云计算等技术高速发展,将逐渐形成一个万物互联智能化的新时代,应用智慧化技术参与园区的规划、建设和运营,打造新型智慧园区是大势所趋。打造智慧园区可通过部署人员定位系统来实现,人员定位系统能够帮助园区实现人员、车辆、物资智慧化管理。新锐......
  • 基于Java+Vue的采购管理系统:降低采购成本,需求部门更低成本采购(整套源码)
    前言:采购管理系统是一个综合性的管理平台,旨在提高采购过程的效率、透明度,并优化供应商管理。以下是对各个模块的详细解释:一、供应商准入供应商注册:供应商通过在线平台进行注册,填写基本信息和资质文件。资质审核:系统对供应商提交的资质文件进行自动或人工审核,确保供应商符......
  • Systemd 解释使用实例(Linux系统的详细解释和配置文件使用)
    Systemd是Linux系统工具,用来启动守护进程 (opensnewwindow),已成为大多数发行版的标准配置。1.由来历史上,linux的启动一直采用init进程。下面的命令用来启动服务。$sudo/etc/init.d/apache2start#或者$serviceapache2start这种方法有两个缺点。一是启动......