前端项目开发对接后端为服务器接口

本文详细阐述了前端开发中通过Vue组件调用API,再进一步调用后端微服务接口的全过程,涉及路由配置、组件间通信和前后端交互的典型步骤。

在项目中,前端如何调用后端的接口,整体的流程大概可以分为
路由调用vue页面的组件,
页面组件调用前端的Api接口(js文件),
前端接口调用后端的微服务接口
前端开发对接后端流程.png

这个是首页,包含了多个路由,路由下也可包括子路由.路由中引用了页面文件,页面文件应用js文件,js文件中的请求引入默认的请求前缀,去对接后端的Api接口

路由首页.png
对应路由的页面显示.png

vue页面中js文件的引用.png
js文件中引入前缀和暴露自己的请求后缀.png
对应请求前缀.png

使用nginx搭载负载均衡

在React项目中,前端后端接口对接有多种方式,以下为你介绍常见的方法: ### 创建React前端与Node/Express后端并连接 可以创建一个React前端和一个Node/Express后端并连接它们,不过引用未给出具体实现步骤,通常需要在Node/Express后端搭建服务器并设置接口路由,在React前端使用HTTP请求库(如Axios)来调用后端接口。 ### 使用umi框架请求接口 若使用【Ant Design Pro】这类基于umi框架的项目,可按如下步骤进行接口连接: - **前端**:创建`services`文件,例如`list.ts`,导入`{ request }` from `"umi"`,编写get/post接口代码。示例如下: ```typescript // list.ts import { request } from "umi"; export async function get_title() { return request('/api/titles'); } ``` - **后端**:将`/api/titles`写入到前端list的GET/POST接口即可完成连接。使用时,在组件中导入接口函数: ```typescript import {get_title} from "@/services/list"; // 在组件中调用 async function fetchData() { const data = await get_title(); console.log(data); } ``` ### 使用Axios进行请求 使用Axios库向服务器发送HTTP请求,以分页查询为例: ```javascript import axios from 'axios'; // 假设Common.baseUrl是后端接口的基本URL const Common = { baseUrl: 'http://your-backend-url' }; let data = { "address": null, "age": null, "id": null, "name": null, "tags": null }; axios.post(Common.baseUrl + "/iotDb/list", data) .then((res) => { console.log("res"); console.log(res); let iotDbList = res.data.data.content; // 假设Toast是一个提示函数 Toast('查找成功'); }) .catch((error) => { console.error('请求出错:', error); }); ``` 后端Java代码使用Spring Boot框架,对应接口如下: ```java import org.springframework.data.domain.Example; import org.springframework.data.domain.ExampleMatcher; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; // 假设IotDb是实体类,IotDbRepository是数据访问接口,ReturnT是返回结果类 @RestController public class IotDbController { @PostMapping("/list") public Object list(@RequestBody IotDb iotDb, @RequestParam(required = false, defaultValue = "0") int pageNumber, @RequestParam(required = false, defaultValue = "10") int pageSize) { try { ExampleMatcher matcher = ExampleMatcher.matchingAll(); Example<IotDb> example = Example.of(iotDb, matcher); Pageable pageable = PageRequest.of(pageNumber, pageSize); Page<IotDb> all = iotDbRepository.findAll(example, pageable); return ReturnT.success(all); } catch (Exception e) { e.printStackTrace(); return ReturnT.error(e.getMessage()); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值