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

接口调用方式2

目前经常使用的框架是Springboot,我们经常会遇到系统之间相互进行调用,具体的调用方式如下

  •      在Spring Boot中调用外部API接口,可以使用RestTemplate或者WebClient

RestTemplate的示例代码

添加依赖到pom.xml 中

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

RestTemplate中几个常用的方法:getForObject()、getForEntity()、postForObject()、postForEntity()。其中,getForObject() 和 getForEntity() 方法可以用来发送 GET 请求
 

RestTemplateConfig配置类如下:


@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory){
        return new RestTemplate(factory);
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setReadTimeout(5000);//单位为ms
        factory.setConnectTimeout(5000);//单位为ms
        return factory;
    }
}

接口调用如下


@RestController
public class TestRestTemplate {
    @Resource
    private RestTemplate restTemplate;

    @GetMapping(value = "/saveUser")
    public void saveUser(String userId) {
        String url = "http://127.0.0.1:8080/master/test";
        Map map = new HashMap<>();
        map.put("userId", "hy001");
        String results = restTemplate.postForObject(url, map, String.class);
    }
  }
  • 使用FeignClient调用

      FeignClient调用大多用于微服务开发中,各服务之间的接口调用。它以Java接口注解的方式调用HTTP请求,使服务间的调用变得简单

在使用方引入依赖

<!-- Feign注解 这里openFeign的版本要和自己使用的SpringBoot匹配-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <!-- <version>4.0.1</version> -->
</dependency>

1. 服务接口调用方,启动时启动类必须加上@EnableFeigncliens注解


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
public class StudyfeignApplication {

    public static void main(String[] args) {
        SpringApplication.run(StudyfeignApplication.class, args);
        System.out.println("项目启动成功");
    }

}
2.Feign接口调用服务controller层
import com.hysoft.studyfeign.service.SysUserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("feignService")
public class SysUserController {

    @Autowired
    private SysUserClient sysUserClient;

    @PostMapping("getUserId")
    public void getUserId(String userId){
        this.sysUserClient.getUserById(userId);
    }

}
3.服务接口调用service层

   feign的客户端需要使用@FeignClient注解进行表示,这样扫描时才知道这是一个feign客户端。@FeignClient最常用的就两个属性,一个name,用于给客户端定义一个唯一的名称,另一个就是url,用于定义该客户端调用的远程地址。

url中的内容,可以写在配置文件application.yml中,便于管理

Service中的调用关系如下

@Service
@FeignClient(name = "feign-service",url = "${master-getuserbyId}")
public interface SysUserClient {

    @PostMapping("/master/test")
    String getUserById(String id);

}


http://www.kler.cn/news/318593.html

相关文章:

  • C语言 | Leetcode C语言题解之第434题字符串中的单词数
  • uniapp组件封装和父子组件间通讯的介绍和详细案例
  • UE学习篇ContentExample解读------Blueprint_Communication-上
  • 海康HIK IN客户端使用帮助说明
  • 【工具】语音朗读PDF的免费工具
  • 探索未来科技的深邃海洋:IT领域的波澜壮阔
  • 目标检测DOTA数据集
  • 助力智能化农田作物除草,基于YOLOv10全系列【n/s/m/b/l/x】参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统
  • 算法:69.x的平方根
  • 力扣每日一题 字符串中最多数目的子序列 贪心 字符串 前缀和
  • JavaWeb--纯小白笔记06:使用Idea创建Web项目,Servlet生命周期,注解,中文乱码解决
  • 基于姿态估计算法的健身辅助应用
  • 关系型数据库 - MySQL II
  • Redis 数据同步原理
  • Go weak包前瞻:弱指针为内存管理带来新选择
  • Spring源码学习:SpringMVC(3)mvcannotation-driven标签解析【RequestMappingHandlerMapping生成】
  • notepad++的json查看
  • 8.隐私与安全 - 使用ChatGPT时的注意事项【8/10】
  • 业务安全治理
  • Vue中nextTick的底层原理
  • 【C语言】猜数字游戏
  • LeetCode146 LRU缓存
  • C++解压及压缩(window或linux下编译、使用libarchive)
  • CSS——网格布局(display: grid)之下篇
  • 评论表设计与实现(多级评论)
  • JS的基础语法
  • 在Java中如何利用ClassLoader动态加密、解密Class文件
  • 文本合成语音api接口文档
  • 华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 10 推送实况窗消息
  • WebGL动画与交互