在 Java 项目中,API 接口文档化通常有几种常见方式,从“最基础”到“最自动化”依次如下:
适合:代码级 API(类、方法)文档
/**
* 用户服务接口
*/
public interface UserService {
/**
* 根据ID获取用户
*
* @param id 用户ID
* @return 用户对象
*/
User getUserById(Long id);
}
javadoc -d docs User.java
或 Maven:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
✅ 优点:零依赖
❌ 缺点:不适合 REST API
适合:Spring Boot REST API
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
@Operation(summary = "获取用户")
@GetMapping("/users/{id}")
public User getUser(@Parameter(description = "用户ID") @PathVariable Long id) {
return userService.get(id);
}
http://localhost:8080/swagger-ui.html
✅ 自动生成
✅ 可调试
✅ 支持 JSON / YAML
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
⚠️ 已不再维护,不推荐新项目使用
适合:需要“示例 + 测试驱动”的文档
@Test
public void getUser() {
mockMvc.perform(get("/users/1"))
.andDo(document("user-get"));
}
生成 AsciiDoc / HTML
✅ 文档与测试一致
❌ 配置稍复杂
常见工具:
✅ 非技术人员可维护
✅ 支持 Mock
❌ 与代码不同步
| 场景 | 推荐方案 |
|---|---|
| Spring Boot REST | springdoc-openapi |
| 对外 SDK | Javadoc |
| 企业级 API | Apifox + OpenAPI |
| 高质量文档 | Spring Rest Docs |
/users:
get:
summary: 获取用户列表
parameters:
- name: page
in: query
type: integer
如果你愿意,可以告诉我:
我可以直接给你一套可落地的方案或模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。