# soa lab1 **Repository Path**: rorida/soa-lab1 ## Basic Information - **Project Name**: soa lab1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-16 - **Last Updated**: 2025-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多语言微服务实验室系统 ## 项目概述 本项目实现了一个基于微服务架构的实验室管理系统,采用多种编程语言开发不同的服务组件,并通过统一的REST API网关进行集成。 ## 技术架构 - **网关服务**:Java + Spring Cloud Gateway - **物资管理服务**:Node.js + Express - **借用记录服务**:Python + Flask - **前端**:Vue.js(预留) ## 系统架构图 ``` 客户端 → Java Gateway (8088) → 多语言服务集群 ↓ ┌──────────────┬────────────────┐ ↓ ↓ ↓ Python借用服务 Node.js物资服务 Java服务(预留) (8081) (8082) (预留) ``` ## 快速开始 ### 1. 启动借用记录服务(Python) ```bash cd LaboratorySystem/backend/python_back python app.py ``` 服务将在 **8081** 端口启动。 ### 2. 启动物资管理服务(Node.js) ```bash cd LaboratorySystem/backend/node_back/material-service npm install # 首次运行需要安装依赖 npm start ``` 服务将在 **8082** 端口启动。 ### 3. 启动网关服务(Java) ```bash cd LaboratorySystem/backend/gateway_service mvn spring-boot:run ``` 服务将在 **8088** 端口启动。 ## 统一API访问 所有服务均可通过网关统一访问: ### 借用记录服务API - `GET http://localhost:8088/api/borrows` - 获取借用记录列表 - `POST http://localhost:8088/api/borrows` - 创建新的借用记录 - `GET http://localhost:8088/api/borrows/{id}` - 获取指定借用记录 - `PUT http://localhost:8088/api/borrows/{id}` - 更新借用记录 - `DELETE http://localhost:8088/api/borrows/{id}` - 删除借用记录 ### 物资管理服务API - `GET http://localhost:8088/api/materials` - 获取物资列表 - `POST http://localhost:8088/api/materials` - 创建新物资 - `GET http://localhost:8088/api/materials/{id}` - 获取指定物资 - `PUT http://localhost:8088/api/materials/{id}` - 更新物资信息 - `DELETE http://localhost:8088/api/materials/{id}` - 删除物资 - `GET http://localhost:8088/api/materials/status/available` - 获取可用物资 - `PUT http://localhost:8088/api/materials/batch/status` - 批量更新物资状态 ## 网关健康检查 ```bash GET http://localhost:8088/actuator/health ``` ## 服务健康检查 - Python服务:`http://localhost:8081/health` - Node.js服务:`http://localhost:8082/health` ## 项目结构 ``` LaboratorySystem/ ├── backend/ # 后端服务 │ ├── gateway_service/ # Java网关服务 │ ├── python_back/ # Python借用记录服务 │ ├── node_back/ # Node.js物资管理服务 │ └── java_back/ # Java服务(预留) ├── frontend/ # 前端代码 ├── API文档.md # API详细文档 ├── integration_documentation.md # 集成文档 └── test_integration.py # 集成测试脚本 ``` ## 注意事项 1. 请确保各服务端口(8081、8082、8088)未被占用 2. 如需修改端口或路由配置,请更新对应服务的配置文件 3. 网关服务的路由规则配置在 `gateway_service/src/main/resources/application.yml` 中 ## 故障排查 1. 检查各服务是否正常启动 2. 验证网关路由配置是否正确 3. 使用服务健康检查端点确认服务状态 4. 检查网络连接和端口占用情况