# relax
**Repository Path**: hu_ao/relax
## Basic Information
- **Project Name**: relax
- **Description**: 使用注解开发接口,大幅减少开发人员在编码方面的工作。快速开发的同时又提供了很强的灵活性,能够自定义各种前后置逻辑。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://hu_ao.gitee.io/relax/#/
- **GVP Project**: No
## Statistics
- **Stars**: 41
- **Forks**: 0
- **Created**: 2024-01-17
- **Last Updated**: 2024-10-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: CRUD, Java, 无侵入, 业务切入
## README
Relax
基于SpringBoot的快速CRUD工具。
## 快速开始
Relax对API接口中的CRUD(创建、读取、更新、删除)场景进行了丰富的封装,大幅减少了开发人员在这方面的编码工作。
### 引入
```java
io.github.shenjingwaa
relax-spring-boot-starter
${latest-version}
```
### 开启
```java
@EnableRelax
@SpringBootApplication
public class RelaxApplication {
public static void main(String[] args) {
SpringApplication.run(RelaxApplication.class, args);
}
}
```
### 配置
```yaml
# 当前配置文件为 application.yml 文件
relax:
auto-create-table: true # 开启自动表创建
entity-locations: com.app.entity.** # relax实体扫描位置(默认为springboot启动类所在文件夹及子文件夹)
```
> 注:
>
> 如果需要开启自动表创建,需在application配置文件中增加配置relax.auto-create-table: true
>
> 该配置默认关闭,建议在dev环境开启,prod环境关闭该功能!
### 创建表 & 参数格式 & 返回值格式
```java
//关于@RelaxEntity,如果您的auto-create-table配置为true,那么将会自动创建表.
//为false,则只会用于接口的生成
@RelaxEntity(tableName = "relax_user")
public class RelaxUser {
// 必须有且仅有一个属性通过 @RelaxId 显示指定表的主键,
// 自动创建表字段会根据 @RelaxColumn 标注的属性,并且能够作为增删改查条件使用.
@RelaxId
@RelaxColumn
private Long id;
@RelaxColumn
private String username;
@RelaxColumn
private String avatar;
@RelaxColumn
private LocalDate birthday;
@RelaxColumn
private Integer userType;
@RelaxColumn
private Integer status;
// 此处省略get,set等方法...
}
```
### 创建API接口
```java
@RelaxClass(entityType = RelaxUser.class)
@RestController
@RequestMapping("/relaxUser")
public class RelaxUserController {
}
```
> 此时您已经成功创建了接口创建,下面即可进入测试步骤
### 使用接口
根据以上示例生成的接口应为:
#### 新增数据
POST /relaxUser/add
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | RequestBody | 是 |
| username | sili | RequestBody | 否 |
| avatar | [https://avatars.githubusercontent.com/u/112607471?v=4](https://avatars.githubusercontent.com/u/112607471?v=4) | RequestBody | 否 |
| birthday | 1989-03-27 | RequestBody | 否 |
| userType | 00 | RequestBody | 否 |
| status | 0 | RequestBody | 否 |
#### 更新数据
POST /relaxUser/update
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | RequestBody | 是 |
| username | sili2 | RequestBody | 否 |
| avatar | [https://avatars.githubusercontent.com/u/112607471?v=4](https://avatars.githubusercontent.com/u/112607471?v=4) | RequestBody | 否 |
| birthday | 1989-03-27 | RequestBody | 否 |
| userType | 00 | RequestBody | 否 |
| status | 0 | RequestBody | 否 |
#### 删除数据
POST /relaxUser/delete
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | RequestBody | 是 |
#### 根据ID查看详情
GET /relaxUser/info
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | param | 是 |
#### 列表查询
POST /relaxUser/list
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | RequestBody | 否 |
| username | sili | RequestBody | 否 |
| avatar | [https://avatars.githubusercontent.com/u/112607471?v=4](https://avatars.githubusercontent.com/u/112607471?v=4) | RequestBody | 否 |
| birthday | 1989-03-27 | RequestBody | 否 |
| userType | 00 | RequestBody | 否 |
| status | 0 | RequestBody | 否 |
#### 分页查询
POST /relaxUser/page
| 字段名 | 字段值 | 所在位置 | 是否必填 |
| --- | --- | --- | --- |
| id | 1 | RequestBody | 否 |
| username | sili | RequestBody | 否 |
| avatar | [https://avatars.githubusercontent.com/u/112607471?v=4](https://avatars.githubusercontent.com/u/112607471?v=4) | RequestBody | 否 |
| birthday | 1989-03-27 | RequestBody | 否 |
| userType | 00 | RequestBody | 否 |
| status | 0 | RequestBody | 否 |
| pageSize | 1 | param | 否(默认1) |
| pageNum | 10 | param | 否(默认10) |