Ver código fonte

新增 README:项目简介、运行方式、API端点与文档索引

yangyi 1 semana atrás
pai
commit
aae8cb8a15
1 arquivos alterados com 88 adições e 0 exclusões
  1. 88 0
      README.md

+ 88 - 0
README.md

@@ -0,0 +1,88 @@
+# JDK HTTP Client 使用教程
+
+基于 JDK 自带模块 `java.net.http`(Java 11+,本仓库使用 Java 17)的实战示例项目,
+围绕一个本地运行的 User Management API,演示 JDK HTTP Client 的核心用法。
+每个知识点均包含:示例代码、JUnit 测试、文字说明。
+
+## 项目结构
+
+```
+httpClient/
+├── src/                        # JDK HTTP Client 示例与测试(根模块,Java 17)
+│   ├── main/java/space/anyi/httpClient/
+│   │   ├── model/              # UserRequest / UserVO / FileVO / Result<T> 模型
+│   │   ├── QuickStart.java     # 快速入门:请求构造与响应处理
+│   │   ├── GetExample.java     # GET 请求
+│   │   ├── PostExample.java    # POST 请求(JSON)
+│   │   ├── PutDeleteExample.java # PUT / DELETE 请求
+│   │   ├── HeaderExample.java  # 请求头
+│   │   ├── BodyExample.java    # 请求体 / multipart 文件上传
+│   │   ├── FileDownloadExample.java # 文件下载
+│   │   ├── SyncAsyncExample.java   # 同步与异步
+│   │   ├── ResponseHandlerExample.java # 响应处理器
+│   │   ├── ClientConfigExample.java  # HTTP Client 配置
+│   │   ├── RequestConfigExample.java # HTTP Request 配置
+│   │   └── CoreApiExample.java # 核心对象 API 一览
+│   └── test/java/space/anyi/httpClient/  # 12 个测试类(JUnit 5)
+├── API_server/                 # User Management API(Spring Boot 3.5,独立模块)
+├── httpClient.md               # 主题大纲
+├── doc.md                      # 详细使用文档
+└── blog.md                     # 教程 blog(doc.md 的 blog 化渲染)
+```
+
+## 环境要求
+
+- JDK 17+
+- Maven 3.6+
+
+## 快速开始
+
+```bash
+# 1. 启动 API 服务(独立 Spring Boot 应用,监听 8080 端口)
+mvn -f API_server/pom.xml spring-boot:run
+
+# 2. 运行全部测试(需先启动 API 服务)
+mvn test
+
+# 2'. 运行单个测试类
+mvn -Dtest=GetExampleTest test
+```
+
+> 注意:测试会真实调用本地 API,**必须**先启动 API 服务,否则网络相关测试会失败。
+
+## API 端点
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/api/users` | 查询用户列表 |
+| GET | `/api/users/{id}` | 按 id 查询单个用户 |
+| POST | `/api/users` | 创建用户(JSON) |
+| PUT | `/api/users/{id}` | 整体更新用户(JSON) |
+| DELETE | `/api/users/{id}` | 删除用户 |
+| POST | `/api/files/upload` | 文件上传(multipart/form-data) |
+| GET | `/api/files/download/{storedFileName}` | 按存储文件名下载文件 |
+
+用户字段(`UserRequest`):`name`、`account`、`sex` 均必填,`account` 唯一,
+重复创建返回 409。所有接口返回统一包装结构 `{code, message, data}`。
+文件上传结果存于 `uploads/` 目录(已 gitignore)。
+
+启动后可通过 Swagger UI(springdoc)浏览接口文档:
+`http://localhost:8080/swagger-ui.html`
+
+## 文档
+
+| 文件 | 内容 |
+|------|------|
+| `httpClient.md` | 主题大纲(文档结构的事实来源) |
+| `doc.md` | 详细使用文档 |
+| `blog.md` | blog 版教程 |
+
+## 涉及知识点
+
+- GET / POST / PUT / DELETE 请求
+- 请求头与请求体(JSON、输入流、multipart 文件上传)
+- 文件上传与下载
+- 同步 `send()` 与异步 `sendAsync()`、批量并发
+- 内置与自定义响应处理器(BodyHandler / BodySubscriber)
+- HTTP Client 与 HTTP Request 配置项
+- 核心对象(HttpClient / HttpRequest / HttpResponse / HttpHeaders)API