接口调用方式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);
 
}
目录
相关文章
|
5月前
|
JSON 数据格式
【有关调用第三方接口工具】
【有关调用第三方接口工具】
40 0
|
4天前
|
API
接口调用方式1
接口调用方式1
15 1
|
3月前
|
存储 JavaScript Serverless
函数计算产品使用问题之如何获取请求ID并响应给调用者
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
小程序 前端开发 开发者
调用第三方接口微信登录接口
该文档介绍了调用微信登录接口的需求和实现思路。当用户尝试访问需要登录的页面时,若未登录则弹出微信登录选项。登录过程涉及微信小程序的wx.login()方法获取临时凭证code,并将其发送到服务器,服务器通过此code换取用户的OpenID、UnionID和session_key。依据这些信息,服务器可生成自定义登录态以识别用户身份。参考微信官方文档和登录流程图进行实现。
62 9
|
5月前
|
缓存 监控 算法
如何处理1688商品详情API的并发请求问题?
并发请求问题是指在多个用户同时对同一资源进行操作时,产生的冲突和竞争条件。在1688商品详情API的应用场景下,多个用户可能同时对同一商品信息进行查询或更新。如果这些操作没有得到合理的协调和处理,就可能导致数据的不一致性和错误。
|
11月前
uniapp 请求接口的方式
uniapp 请求接口的方式
323 1
|
5月前
|
XML 移动开发 小程序
小程序微信支付API?以及参数有哪些
小程序微信支付API?以及参数有哪些
313 0
|
12月前
|
XML API 数据格式
API商品数据接口调用实战
随着互联网技术的发展,应用程序间的数据交互变得越来越重要。API(Application Programming Interface,应用程序编程接口)作为一种标准化的数据交互方式,被广泛应用于各种场景。本文将围绕API商品数据接口调用进行实战探讨,涉及API的基本概念、商品数据接口的设计、接口调用实现以及代码示例等方面。
|
API 数据库 Python
使用API调用获取商品数据的完整方案
在电子商务应用程序中,商品详情接口是不可或缺的一部分。它用于从电商平台或自己的数据库中获取商品数据,并将其提供给应用程序的其他部分使用。本文将详细介绍如何设计一个完整的商品详情接口方案,其中包括使用API调用来获取商品数据的过程。我们将使用Python语言示例代码来阐述该过程。
|
测试技术 程序员 API
API 接口的对接流程和注意事项
随着互联网技术的发展和数字化时代的到来,API接口已经成为应用程序之间进行数据交换和通信的重要方式。API即应用程序接口,是一种定义、调用和交互的规范,使得不同应用程序之间可以相互调用和共享资源。本文将从程序员的视角出发,详细介绍API接口的对接流程和注意事项。