incloud开发文档 5.1.0 Help

开发及测试

本章节介绍如何基于下载的模板进行业务开发,包括后端接口开发、前端页面开发以及测试调试等内容。

后端开发

项目结构

下载的后端模板项目结构如下:

incloud-biz-demo/ ├── src/main/java/com/netwisd/biz/demo/ │ ├── config/ # 配置类 │ ├── controller/ # 控制器层 │ ├── service/ # 服务层 │ │ └── impl/ # 服务实现 │ ├── mapper/ # 数据访问层 │ ├── entity/ # 实体类 │ ├── dto/ # 数据传输对象 │ ├── vo/ # 视图对象 │ └── DemoApplication.java # 启动类 ├── src/main/resources/ │ ├── application.yaml # 应用配置 │ └── logback-spring.xml # 日志配置 ├── Dockerfile # Docker构建文件 └── pom.xml # Maven配置

使用代码生成

推荐使用平台提供的代码生成工具快速创建CRUD代码:

方式一:数据建模(推荐)

  1. 登录平台管理端

  2. 进入"应用 -> 低代码开发 -> 数据建模"

  3. 创建数据模型,定义字段

  4. 点击"生成代码"下载完整的后端和前端代码

详见: 数据建模

方式二:后台代码生成

使用incloud-codegen模块进行代码生成:

@SpringBootTest public class CodeGenTest { @Autowired private GenService genService; @Test public void generate() { genService.generate( "/Users/xxx/gen/", // 生成路径 "demo", // appCode "incloud_biz_demo_order", // 表名 "订单表", // 表注释 "single", // 模板类型:single/single-wf "com.netwisd.biz", // 包名 "demo", // 模块名 "incloud_biz_", // 表前缀 Arrays.asList() // 排除项 ); } }

详见: 代码生成

开发规范

Entity实体类

@Data @TableName("incloud_biz_demo_order") @Table(value = "incloud_biz_demo_order", comment = "订单表") public class DemoOrder extends AbstractEntity<DemoOrder> { @Schema(description = "订单编号") @TableField("order_no") @Column(type = DataType.VARCHAR, length = 50, isNull = false, comment = "订单编号") private String orderNo; @Schema(description = "订单金额") @TableField("amount") @Column(type = DataType.DECIMAL, length = 10, precision = 2, comment = "订单金额") private BigDecimal amount; }

Service服务层

public interface IDemoOrderService extends IBaseService<DemoOrder> { // 自定义业务方法 Result<DemoOrderVo> getOrderDetail(Long id); } @Service public class DemoOrderServiceImpl extends AbstractBaseService<DemoOrderMapper, DemoOrder> implements IDemoOrderService { @Override public Result<DemoOrderVo> getOrderDetail(Long id) { DemoOrder order = getById(id); return Result.success(DozerUtils.map(order, DemoOrderVo.class)); } }

Controller控制器

@RestController @RequestMapping("/demo/order") @Tag(name = "订单管理") public class DemoOrderController extends AbstractBaseController<IDemoOrderService, DemoOrder> { @Operation(summary = "获取订单详情") @GetMapping("/detail/{id}") public Result<DemoOrderVo> getDetail(@PathVariable Long id) { return service.getOrderDetail(id); } }

启动后端服务

  1. 确保中间件已启动(Nacos、MySQL、Redis等)

  2. 配置环境变量

  3. 运行启动类

# 或使用Maven mvn spring-boot:run

前端开发

项目结构

incloud-biz-demo-web/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API接口定义 │ ├── views/ # 页面组件 │ ├── components/ # 公共组件 │ ├── router/ # 路由配置 │ └── utils/ # 工具函数 ├── build.ts # 构建配置 ├── vite.config.ts # Vite配置 └── package.json # 依赖配置

安装依赖

# 安装pnpm(如未安装) npm install -g pnpm # 安装项目依赖 pnpm install

开发页面

API接口定义

// src/api/order.ts import { request } from '@platform-lib/base' export const orderApi = { // 获取订单列表 getList: (params: any) => request.get('/demo/order/list', { params }), // 获取订单详情 getDetail: (id: number) => request.get(`/demo/order/detail/${id}`), // 新增订单 create: (data: any) => request.post('/demo/order', data), // 更新订单 update: (data: any) => request.put('/demo/order', data), // 删除订单 delete: (id: number) => request.delete(`/demo/order/${id}`) }

列表页面

<template> <NwTableLayout> <template #search> <NwTableLayoutSearch :form-data="searchForm" @search="handleSearch" /> </template> <template #toolbar> <NwToolbar :buttons="toolbarButtons" /> </template> <template #table> <vxe-table :data="tableData" :loading="loading"> <vxe-column field="orderNo" title="订单编号" /> <vxe-column field="amount" title="金额" /> <vxe-column title="操作" width="150"> <template #default="{ row }"> <t-button theme="primary" variant="text" @click="handleEdit(row)">编辑</t-button> <t-button theme="danger" variant="text" @click="handleDelete(row)">删除</t-button> </template> </vxe-column> </vxe-table> </template> </NwTableLayout> </template>

启动前端

# 开发模式启动 pnpm run dev # 默认访问地址 # http://localhost:3000

测试调试

后端接口测试

使用Knife4j文档

启动后端服务后,访问 Swagger 文档:

http://localhost:8001/doc.html

可以在线测试所有API接口。

使用Postman/ApiFox

导入OpenAPI文档进行接口测试:

http://localhost:8001/v3/api-docs

前端调试

配置代理

vite.config.ts 中配置后端代理:

export default defineConfig({ server: { proxy: { '/api/v5.0': { target: 'http://localhost:8000', changeOrigin: true } } } })

浏览器调试

使用Chrome DevTools进行调试:

  • Network面板 :查看接口请求

  • Console面板 :查看日志输出

  • Vue DevTools :调试Vue组件状态

常见问题

问题

解决方案

接口返回401

检查Token是否过期,重新登录获取Token

跨域错误

检查网关配置或前端代理配置

数据库连接失败

检查环境变量和数据库配置

Nacos连接失败

确认Nacos服务已启动且地址正确

下一步

完成开发和测试后,可以进行构建部署:

25 十一月 2025