ryu11wgu/customer-support-lab

GitHub: ryu11wgu/customer-support-lab

一个使用 Java Spring Boot 和 PostgreSQL 模拟的客户支持实验项目,用于实践事件故障排查、SQL 验证与 API 调试。

Stars: 0 | Forks: 0

# 客户支持实验 使用 Java、Spring Boot、PostgreSQL 和 REST API 构建的应用支持实验,用于实践事件故障排查、SQL 验证、API 调试和生产风格的支持工作流程。 ## 目的 该项目模拟一个用于应用支持实践的小型客户账户系统。目标是构建真实的故障排查体验,涵盖常见的支持层面: - REST API 请求 - Spring Boot 后端逻辑 - PostgreSQL 数据库访问 - HTTP 状态码 - 验证错误 - 数据库验证 - 事件风格文档 ## 技术栈 - Java 21 - Spring Boot - Spring Web - Spring Data JPA - PostgreSQL - Jakarta 验证 - Spring Boot Actuator - Maven ## 当前功能 - 创建客户记录 - 获取所有客户 - 按 ID 获取客户 - 在 PostgreSQL 中持久化客户数据 - 验证客户请求数据 - 暴露基本的 Actuator 健康端点 ## API 端点 | 方法 | 端点 | 描述 | | --- | --- | --- | | GET | `/api/customers` | 获取所有客户 | | GET | `/api/customers/{id}` | 按 ID 获取客户 | | POST | `/api/customers` | 创建客户 | | GET | `/actuator/health` | 检查应用健康 | ## 客户字段 | 字段 | 描述 | | --- | --- | | id | 自动生成的客户 ID | | firstName | 客户名 | | lastName | 客户姓 | | email | 唯一的客户邮箱 | | status | 客户状态:ACTIVE、SUSPENDED 或 CLOSED | | createdAt | 创建时间戳 | | updatedAt | 最后更新时间戳 | ## 创建客户请求示例 ``` curl -X POST http://localhost:8081/api/customers \ -H "Content-Type: application/json" \ -d '{ "firstName": "John", "lastName": "Smith", "email": "john.smith@example.com", "status": "ACTIVE" }' ``` ## 数据库验证示例 ``` SELECT * FROM customers; ``` ## 配置 该项目期望通过环境变量提供数据库凭据。 ``` spring: datasource: url: jdbc:postgresql://localhost:5432/customer_support_lab username: ${DB_USERNAME} password: ${DB_PASSWORD} ``` 本地环境设置示例: ``` export DB_USERNAME=your_postgres_user export DB_PASSWORD='your_postgres_password' ``` ## 运行应用 ``` ./mvnw spring-boot:run ``` 然后测试: ``` curl http://localhost:8081/actuator/health ``` 预期响应: ``` { "status": "UP" } ``` ## 支持技能实践 - 使用 curl 测试 REST API - 阅读 Spring Boot 启动日志 - 排查 PostgreSQL 连接错误 - 使用 SQL 验证数据库记录 - 识别请求验证失败 - 理解分层后端架构 - 映射控制器、服务、仓库和数据层之间的问题 ## 已完成的里程碑 - 设置 Spring Boot 项目 - 连接 Spring Boot 到 PostgreSQL - 创建 Customer 实体和 CustomerStatus 枚举 - 创建 CustomerRepository - 创建 CustomerService 层 - 创建 CustomerController - 为客户字段添加验证 - 使用 curl 测试 POST 和 GET 请求 - 直接在 PostgreSQL 中验证持久化记录 ## 计划的支持实验 - 由于错误的数据库凭据导致应用无法启动 - API 返回 400(无效客户请求) - API 返回 404(客户不存在) - API 返回 500(模拟后端错误) - 客户状态不一致调查 - 慢端点故障排查 - Actuator 和基础可观测性检查
标签:API调试, HTTP状态码, Incident响应, Jakarta Validation, Maven, PostgreSQL, REST API, Spring Boot, Spring Boot Actuator, Spring Data JPA, Spring Web, SQL验证, TCP/UDP/TLS指纹, 健康检查, 后端开发, 客户账户系统, 应用支持, 技术支持练习, 接口测试, 数据库访问, 日志与文档, 测试用例, 漏洞验证, 生产环境支持, 验证错误