接口调用方式2

简介: 接口调用方式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);
 
}
目录
相关文章
|
人工智能
如何使用chatGPT生成小红书种草文案
小红书种草文案,例如具有影响力的热门话题、产品使用方法等内容可以让消费者迅速了解产品为品牌带来更多新客户。想要在小红书实现种草,离不开种草文案。今天就教大家使用ChatGPT撰写小红书种草文案。
1855 0
|
9月前
|
算法 数据安全/隐私保护
通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器
本课题通过MATLAB实现PID控制器、积分分离控制器和滑模控制器,对比结果显示滑模控制具有最快的收敛性能、较强的鲁棒性和较小的超调量,优于其他两种控制器。系统仿真结果无水印,核心程序基于MATLAB 2022a。PID控制器由P、I、D单元组成,积分分离PI在大误差时不进行积分,减少超调;滑模控制通过设计滑动面使系统快速收敛,抑制扰动。
|
6月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
367 27
|
9月前
|
人工智能 缓存 监控
终于有人说清楚AI开发的全流程了!
本文详述了AI需求开发流程各阶段的关键步骤和最佳实践,包括需求调研、模型选型、提示词优化、性能测试以及上线后的监控和反馈,旨在帮助开发者构建高效、可靠的AI应用。
|
12月前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
缓存
RestTemplate请求访问简单使用
RestTemplate请求访问简单使用
213 1
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
Java API
|
设计模式 前端开发 Java
下一篇
开通oss服务