Spaces:
Sleeping
Sleeping
metadata
title: Java 面试 Demo(Todo API)
emoji: 🚀
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
Java 面试 Demo(Todo API)
这是一个用于面试展示的 Java 小项目:基于 Spring Boot 实现一个最小可用的 Todo REST API,并包含参数校验、统一错误返回和基础测试。适配 HuggingFace Spaces(Docker)运行。
功能点
- Todo CRUD:创建、查询列表、按 id 查询、更新、删除
- 参数校验:title 必填、长度限制等
- 统一错误返回:校验错误与 404 统一结构化返回
- 基础测试:MockMvc 覆盖创建与校验失败场景
- HuggingFace Spaces:Docker 方式部署,默认监听 7860 端口
本地运行
前置:
- JDK 21(推荐)
启动:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
./mvnw test
./mvnw spring-boot:run
访问:
API 说明
创建 Todo
curl -s -X POST http://localhost:7860/api/todos \
-H 'Content-Type: application/json' \
-d '{"title":"准备面试","description":"把这个项目讲清楚"}'
查询列表
curl -s http://localhost:7860/api/todos
curl -s 'http://localhost:7860/api/todos?status=DONE'
更新 Todo
curl -s -X PUT http://localhost:7860/api/todos/1 \
-H 'Content-Type: application/json' \
-d '{"title":"准备面试","description":"更新一下状态","status":"DONE"}'
删除 Todo
curl -i -X DELETE http://localhost:7860/api/todos/1
设计要点(面试可讲)
- 分层:Controller / Service 分离,Service 内存存储(ConcurrentHashMap)
- 数据结构:使用 record 表达 DTO 与返回值
- 异常处理:全局异常处理,输出稳定的 ErrorResponse 结构
- 可部署性:读取 PORT 环境变量并监听 0.0.0.0,适配容器平台
部署到 HuggingFace Spaces(Docker)
本仓库已经包含 Dockerfile。将代码推送到 Space 仓库后,Space 会自动构建并启动。