# Aldkli-Java
**Repository Path**: QQXQQ/Aldkli-Java
## Basic Information
- **Project Name**: Aldkli-Java
- **Description**: Aldkli-Java
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-09-26
- **Last Updated**: 2026-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Aldkli-Java
## 简介
Aldkli-Java 是一个基于注解的 API 元数据自动扫描与文档生成框架,专为 Spring Boot 应用设计。通过在代码中使用简洁的注解标注 API 信息,系统能够自动扫描并收集接口元数据,通过 REST 接口对外提供统一的 API 文档数据。
## 核心特性
- **注解驱动开发**:通过注解简洁标注 API 信息,无需繁琐的手动文档编写
- **自动扫描**:自动扫描指定包路径下的所有 API 注解
- **统一数据接口**:提供 REST API 统一获取所有接口元数据
- **Spring Boot 集成**:开箱即用的 Spring Boot 自动配置支持
- **结构化元数据**:完整的 API 分组、参数、返回值类型信息收集
## 快速开始
### 添加依赖
在 `pom.xml` 中添加依赖:
```xml
com.msw
aldkli
1.0.0
```
### 配置扫描包路径
在 `application.properties` 或 `application.yml` 中配置需要扫描的包路径:
```properties
aldkli.scan-package=com.example.controller
```
### 使用注解标注 API
#### 1. 在 Controller 上使用 @ApiGroup
```java
@ApiGroup("用户管理")
@RequestMapping("/user")
public class UserController {
// ...
}
```
#### 2. 在方法上使用 @Api、@ApiParams、@ApiReturnType
```java
@Api("获取用户列表")
@GetMapping("/list")
@ApiParams({
@ApiParam(param = "username", description = "用户名", example = "admin"),
@ApiParam(param = "pageNum", description = "页码", example = "1")
})
@ApiReturnType(name = "UserListResult", description = "用户列表", dataType = "List")
public List getUserList(
@RequestParam(required = false) String username,
@RequestParam(defaultValue = "1") Integer pageNum
) {
// ...
}
```
#### 3. 在实体类上使用 @ApiEntity、@ApiProperty
```java
@ApiEntity("用户")
public class User {
@ApiProperty("用户ID")
private Long id;
@ApiProperty("用户名")
private String username;
@ApiProperty("用户邮箱")
private String email;
}
```
### 获取 API 文档数据
启动应用后,通过以下接口获取 API 元数据:
```
GET /aldkli/metaData/getApiEntryList
```
返回数据示例:
```json
[
{
"name": "用户管理",
"scanPackagePath": "com.example.controller",
"apiGroupMetaDataList": [
{
"name": "用户管理",
"pathList": ["/user"],
"apiMetaDataList": [
{
"name": "获取用户列表",
"methodType": "GET",
"pathList": ["/list"],
"apiParamMetaDataList": [
{
"name": "username",
"required": false,
"description": "用户名",
"type": "requestParam",
"dataType": "String",
"example": "admin"
}
],
"apiReturnTypeMetaData": {
"name": "UserListResult",
"description": "用户列表",
"dataType": "List",
"children": []
}
}
]
}
]
}
]
```
## 注解说明
| 注解 | 作用目标 | 说明 |
|------|---------|------|
| `@Api` | 方法 | 定义 API 名称 |
| `@ApiGroup` | 类 | 定义 API 分组 |
| `@ApiParams` | 方法 | 定义 API 参数列表 |
| `@ApiParam` | 方法参数 | 定义单个参数信息 |
| `@ApiReturnType` | 方法 | 定义返回值类型信息 |
| `@ApiEntity` | 类 | 定义实体类信息 |
| `@ApiProperty` | 字段 | 定义实体属性信息 |
## 项目结构
```
src/main/java/com/msw/aldkli/
├── annotation/ # 注解定义
│ ├── Api.java
│ ├── ApiEntity.java
│ ├── ApiGroup.java
│ ├── ApiParam.java
│ ├── ApiParams.java
│ ├── ApiProperty.java
│ └── ApiReturnType.java
├── controller/ # REST 控制器
│ └── MetaDataController.java
├── meta/ # 元数据模型
│ ├── ApiEntry.java
│ ├── ApiGroupMetaData.java
│ ├── ApiMetaData.java
│ ├── ApiParamMetaData.java
│ ├── ApiReturnTypeMetaData.java
│ └── MethodType.java
├── scanner/ # API 扫描器
│ └── ApiScanner.java
├── service/ # 服务层
│ ├── MetaDataService.java
│ └── impl/MetaDataServiceImpl.java
├── util/ # 工具类
│ ├── ClassUtil.java
│ └── MultipleReturnValue.java
├── AldkliAutoConfiguration.java
└── AldkliContext.java
```
## License
本项目遵循 Apache License 2.0 协议。