APIJSAON(一:入门篇)
背景
由于传统开发在开发过程中各种奇葩缩写,混乱的命名,文档过时与接口不同步,数据类型不稳定或者随意改变,几百甚至上千个混乱的状态码,前端与后端的各种扯皮撕逼,整个开发流程繁琐,开发周期长等等原因,由此APIJSON的出现也就应运而生了。
一、APIJSAON是什么?
首先是看名字APIJSON,API是说这个项目是属于接口开发的项目,JSON是指传输数据格式是JSON格式,换句话说,使用这个项目作为后端的支持的话,是不需要对每个表写增删改查等接口的,只需在该项目连接的数据里进行表的创建,以及配置接口权限即可。无需进行过多的开发,哪怕是要改结构也仅仅只需要修改表字段而已。想想仅仅是部署一个后端项目,现在需要些的接口就基本写好了,直接调用就行了。
二、安装步骤
1.环境配置
DK: 1.8+
MAVEN: 3.5+
Mysql:5.7
JetBrains IntelliJ IDEA 2019.2
2.下载项目
使用git clone下载:
git clone https://github.com/APIJSON/APIJSON-Demo.git
或者APIJSON项目地址(https://github.com/APIJSON/AP...)下载
3.导入项目
Idea或者Eclipse 导入:
顶部菜单 File > Import > Maven > Existing Maven Projects > Next > Browse
选择项目所在目录/APIJSON-Demo-Master/APIJSON-Java-Server/APIJSONBoot
下载依赖,当报依赖错误的时候,将同目录下的 libs 里面的 jar 包添加到 Build Path 中
4.错误解决
有可能 pom.xml 会报错,例如:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
这段代码中的这一句提示错误:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
还有可能出现的错误:
添加依赖的version即可解决。
修改步骤:
- 请修改 Eclipse 中的 Maven 镜像地址,以便更快下载或者更新,具体方法自行百度;
- 打开Eclipse->Windows->Preferences->Maven->Installations->add 这个按钮用于指定
maven 的安装目录,不建议使用 eclipse 自带的,需要自己设置。 - 打开Eclipse->Windows->Preferences->Maven->User Settings 这是指定 setting.xml
的位置,同时导向自己的本地 maven 仓库。
三、数据库
1,配置
需要在 DemoSQLConfig,40-61 行,改为自己数据库对应的链接
2,导入
导入 APIJSON-Demo/MySQL 下的 SQL 脚本:
四、新增接口
1,后台添加数据
CREATE TABLE `b_stone` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`cost` int(10) NULL COMMENT '成本',
`price` int(10) NULL COMMENT '卖价',
`length` int(10) NULL,
`width` int(10) NULL,
`height` int(10) NULL,
`weight` float(8,1) NULL,
`creationdate` datetime default CURRENT_TIMESTAMP COMMENT '创建时间',
`modifydate` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`modifier` varchar(80) NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
2,在 Model 中添加对象并配置权限
项目的 model 目录下,新增一个类
package apijson.demo.server.model;
import zuo.biao.apijson.MethodAccess;
@MethodAccess
public class Stone {
}
注解@MethodAccess的配置,可以参考其他类
由于我们的类名和数据库表名不一致,需要注册一下。如果一样就不需要了。
设置数据库的实际表名DemoSQLConfig,38 行
//表名映射,隐藏真实表名,对安全要求很高的表可以这么做
static {
TABLE_KEY_MAP.put(User.class.getSimpleName(), "apijson_user");
TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy");
TABLE_KEY_MAP.put(Stone.class.getSimpleName(), "b_stone"); // <--这一句
}
注册权限是必须的,这样程序才能使用你配置的类权限去管理你的接口
DemoSQLConfig,48 行
static { //注册权限
ACCESS_MAP.put(User.class.getSimpleName(), getAccessMap(User.class.getAnnotation(MethodAccess.class)));
....
ACCESS_MAP.put(Stone.class.getSimpleName(), getAccessMap(Stone.class.getAnnotation(MethodAccess.class)));
}
3,请求参数校验 Request 表配置
可这样设置 structure 字段来配置自动校验请求 JSON 参数:
"VERIFY":{
"type{}":[0,1,2]
}
就能校验 type 的值是不是 0,1,2中的一个。
还有
"VERIFY": { "money&{}":">0,<=10000" } //自动验证是否 money>0 & money<=10000
"TYPE": { "balance": "Double" } //自动验证balance类型是否为Double
"UNIQUE": "phone" //强制phone的值为数据库中没有的
"NECESSARY": "id,name" //强制传id,name两个字段
"DISALLOW": "balance" //禁止传balance字段
"INSERT": { "@role": "OWNER" } //如果没传@role就自动添加
"UPDATE": { "id@": "User/id" } //强制放入键值对
全部操作符见 Operation.java (opens new window)的注释
4,启动项目
5,请求接口测试
至此,一个开挂的零代码编程项目就成功运行了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。