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,申请接口测试
至此,一个开挂的零代码编程我的项目就胜利运行了。
发表回复