0


前端使用 Angular,后端使用 Spring Boot,前端通过 HTTP 请求与后端进行交互流程

在一个前后端分离的项目中,前端使用 Angular,后端使用 Spring Boot,前端通过 HTTP 请求与后端进行交互,后端则通过 Spring Boot Controller 处理请求,并与数据库进行交互。整个流程包括以下几个步骤:

1. 前端发起请求(Angular 调用后端接口)

前端使用 Angular 的 HTTP 客户端(HttpClient)向后端发起 HTTP 请求,通常是 GET、POST、PUT 或 DELETE 请求。

1.在 Angular 中,开发者通过 HttpClient 服务向后端发送请求。例如:

typescript

// Angular service that calls the backend APIimport{Injectable} from '@angular/core';import{HttpClient} from '@angular/common/http';import{Observable} from 'rxjs';@Injectable({
  providedIn:'root'})
export classDataService{private apiUrl ='http://localhost:8080/api/data';// 后端接口的 URLconstructor(private http:HttpClient){}getData():Observable<any>{returnthis.http.get<any>(this.apiUrl);// GET 请求}addData(data: any):Observable<any>{returnthis.http.post<any>(this.apiUrl, data);// POST 请求}}

2.前端的组件通过服务(service)调用这个接口:

typescript

// Angular component that uses the serviceimport{Component,OnInit} from '@angular/core';import{DataService} from './data.service';@Component({
  selector:'app-data',
  templateUrl:'./data.component.html',
  styleUrls:['./data.component.css']})
export classDataComponentimplementsOnInit{

  data: any;constructor(private dataService:DataService){}ngOnInit(){this.dataService.getData().subscribe(response =>{this.data = response;// 处理响应数据});}}

2. Angular 发起 HTTP 请求

  • Angular 通过 HttpClient 服务向后端的 Spring Boot API 发起 HTTP 请求,通常是通过 GET、POST、PUT 等方法。
  • 请求包括: - URL:后端 API 的 URL,例如 http://localhost:8080/api/data。- 请求头(Headers):可以包含认证信息(例如 JWT token),格式、语言等。- 请求体(Body):在 POST 或 PUT 请求中,可能需要传递数据到后端。

3. 后端接收请求(Spring Boot Controller)

当 Angular 发起请求后,Spring Boot 的控制器(Controller)将接收到这个请求,并根据请求的类型和 URL 进行处理。

1.在 Spring Boot 中,后端的控制器使用 @RestController 注解来处理 HTTP 请求。例如:

java

importorg.springframework.web.bind.annotation.*;importjava.util.List;@RestController@RequestMapping("/api/data")publicclassDataController{@GetMappingpublicList<Data>getAllData(){// 调用服务层,从数据库获取数据return dataService.getAllData();}@PostMappingpublicDataaddData(@RequestBodyData newData){// 将新数据保存到数据库return dataService.saveData(newData);}}
  • @GetMapping:对应前端的 GET 请求,返回数据。
  • @PostMapping:对应前端的 POST 请求,处理前端传来的数据并保存到数据库。

4. 后端与数据库交互

后端通过 服务层(Service) 和 数据访问层(Repository) 与数据库交互。Spring Boot 使用 Spring Data JPA 或 JDBC 来与数据库通信。

1. 服务层负责处理业务逻辑:

java

@ServicepublicclassDataService{@AutowiredprivateDataRepository dataRepository;publicList<Data>getAllData(){// 从数据库获取所有数据return dataRepository.findAll();}publicDatasaveData(Data data){// 保存新数据到数据库return dataRepository.save(data);}}

2.数据访问层使用 Spring Data JPA 或者 JDBC 直接与数据库交互:

java

importorg.springframework.data.jpa.repository.JpaRepository;publicinterfaceDataRepositoryextendsJpaRepository<Data,Long>{// 使用 JPA 自动生成的数据库操作方法}

5. 后端返回响应

  • 后端处理完请求后,将数据或结果返回给前端。
  • 如果是查询操作,后端会返回数据列表。如果是数据修改操作,后端会返回操作结果(例如保存成功与否)。
  • 响应以 JSON 格式传递给前端。

6. 前端处理响应数据

  • Angular 在收到后端返回的响应后,使用 Observable 或 Promise 处理数据。
  • 组件会根据接收到的数据更新视图(例如表格、列表、图表等)。 typescript
ngOnInit(){this.dataService.getData().subscribe(response =>{this.data = response;// 将获取到的数据绑定到视图});}

总结流程:

  1. 前端通过 Angular 的 HttpClient 发送 HTTP 请求。
  2. 后端的 Spring Boot 控制器接收到请求,并调用服务层处理业务逻辑。
  3. 服务层通过数据访问层(Repository)与数据库交互,执行 CRUD 操作。
  4. 后端处理完毕后,将结果以 JSON 格式返回给前端。
  5. 前端接收响应数据,并更新用户界面。 通过这个流程,Angular 前端可以与 Spring Boot 后端进行数据交互,实现一个完整的前后端分离项目。

本文转载自: https://blog.csdn.net/weixin_45428910/article/details/142746383
版权归原作者 Smile sea breeze 所有, 如有侵权,请联系我们删除。

“前端使用 Angular,后端使用 Spring Boot,前端通过 HTTP 请求与后端进行交互流程”的评论:

还没有评论