外观
简介
技术交流QQ群:3549030
什么是 Kungfu?
kungfu (发音为 /ˌkʌŋˈfuː/,类似 kongfu) 一个专为 JFinal 设计构建 RESTful API 服务的急速开发库。易学易用、提供强大灵活的脚手架、极大简化CRUD写法、灵活可控、加速控制层、服务层开发。以极快的速度和极好的开发体验完成业务需求。让您节约时间体验工作以外的人生。
下面是一个最基本的示例:
java
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.kungfu.core.*;
@Api(value = "系统菜单", tags = "系统菜单接口")
@Path("/sys-menu")
public class SysMenuController extends KungfuController {
@Inject
private SysMenuService sysMenuService;
@ApiOperation(value = "菜单信息保存或修改", notes = "根据表单内容保存或更新内容", httpMethod = ApiEnum.METHOD_POST, produces = ApiEnum.PRODUCES_JSON)
@ApiImplicitParams({
@ApiImplicitParam(name = "sysMenu", value = "菜单信息", dataTypeClass = SysMenuDTO.class, paramType = ApiEnum.PARAM_TYPE_BODY, required = true)
})
@ApiResCustom(ResultVO.class)
@Before(SysMenuValidator.class)
public void saveOrUpdate() {
SysMenu sysMenu = toModel(SysMenu.class);
renderJson(sysMenuService.saveOrUpdate(sysMenu, getUserInfo()));
}
}
前端POST请求: /sys-menu/saveOrUpdate
json
{
"id": null,
"parentCode": "sys",
"parentName": "系统管理",
"menuCode": "role",
"menuName": "角色管理",
"isEnabled": true,
"linkPage": "",
"menuType": 1,
"icon": "",
"displayNo": 1,
"remark": "基于角色的权限控制",
"component": ""
}
结果展示
失败情况:
json
{
"msg": "编码为'role'已存在,请重新输入",
"code": 631
}
成功情况:
json
{
"msg": "保存成功",
"code": 200
}
上面的示例展示了 Kungfu 的几个核心封装:
标准的接口文档:前后端分离模式下,给前端提供标准的接口文档,实现高效对接。
入参自动获取转换对象:省去了参数的获取及转换工作。
参数校验:校验入参的合法性,并在不合法情况下给前端友好的提示信息。
你可能已经有了些疑问——先别急,在后续的文档中我们会详细介绍每一个细节。现在,请继续看下去,以确保你对 Kungfu 作为一个开发封装库到底提供了什么有一个宏观的了解。
预备知识
文档接下来的内容会假设你对 JFinal 和 Java Web 已经基本熟悉。如果你对JFinal开发完全陌生,最好不要直接从一个框架开始进行入门学习——最好是掌握了基础知识再回到这里。你可以通过这篇 JFinal 开发文档来学习 JFinal 框架知识。如果之前有其他框架的经验会很有帮助,但也不是必须的。
基于JFinal的Restful API 开发扩展库
一个专为JFinal设计的构建RESTful Web服务的急速开发库。
特性
- 能够快速构建 JFinal RESTful API 项目。
- 支持代码生成能力,使用极度简单及灵活,常规的代码帮您写。
- 支持动态构建查询SQL语句。
- 加速Controller层开发的速度及体验。
- 加速Service层开发的速度及体验。
- 更多特性等你发现...
如果你是初学者,可能会觉得这些概念有些复杂。别担心!理解教程和指南的内容只需要具备基础的 JFinal 和 Java Web 知识。即使你不是这些方面的专家,也能够跟得上。