概述
smart-doc主要是基于源代码和JAVADOC标注注释来生成文档,是在开发期或者是项目的编译期执行生成文档
特点
- 非侵入式生成接口文档
- 减少接口文档的手动更新麻烦&保证了接口文档和代码的一致
- 随时可生成最新的接口文档
- 保持团队代码风格一致
简单文档案例
项目地址
依赖
1 2 3 4 5 6
| <dependency> <groupId>com.github.shalousun</groupId> <artifactId>smart-doc</artifactId> <version>1.8.1</version> <scope>test</scope> </dependency>
|
实体类
User
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @Data @AllArgsConstructor public class User {
private String userId;
private String userName;
private String password;
private String age; }
|
控制器
TestController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
@RestController public class TestController {
@RequestMapping("/test") public String test(String str){ return str; } }
|
UserController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
@RestController public class UserController {
@RequestMapping("/login") public User login(String userName, String password){ return new User("1",userName,password,"20"); } }
|
文档生成工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public class DocUtil { private static void createDoc(){ ApiConfig config = new ApiConfig(); config.setServerUrl("http://localhost:8181"); config.setAllInOne(true);
config.setOutPath(DocGlobalConstants.HTML_DOC_OUT_PATH);
config.setPackageFilters("com.example.smart_doc_demo.controller.TestController");
List<ApiErrorCode> errorCodeList = new ArrayList<>(); for (HttpCodeEnum codeEnum : HttpCodeEnum.values()) { ApiErrorCode errorCode = new ApiErrorCode(); errorCode.setValue(codeEnum.getCode()).setDesc(codeEnum.getMessage()); errorCodeList.add(errorCode); }
config.setErrorCodes(errorCodeList); HtmlApiDocBuilder.buildApiDoc(config); }
public static void main(String[] args) { createDoc(); } }
|
执行工具类的main方法后,在target目录下能看到index.html
文档了

效果

测试文档案例
项目代码