APIJSON 自动化接口和文档的快速开发神器

认识APIJSON

APIJSON是一种JSON传输结构协议。客户端可以定义任何JSON结构去向服务端发起请求,服务端就会返回对应结构的JSON字符串,所求即所得。一次请求任意结构任意数据,方便灵活,不需要专门接口或多次请求。支持增删改查、模糊搜索、远程函数调用等。还能去除重复数据,节省流量提高速度!从此HTTP传输JSON数据没有接口,更不需要文档!

上面这段话的介绍也很明确了,要是以我多次使用过的感受来说:搭建好APIJSON,后台开发已经结束

开始使用

目前该项目已发布在开源社区,大家可以到github自行下载。整篇文章对于APIJSON发送请求的语法就不作解释了,作者@lemon已经在文档讲的十分清楚了。(为什么使用APIJSON?

环境准备

初次接触,我们先来体验一番这个“神器”,so,将官网Demo中的数据库、项目运行到本机即可(注意项目正确配置数据库连接,可按官网教程进行)。

如果我们以:

{ "Moment": { "id":12 } }

正确的请求到了http://localhost:8080/get,证明我们的环境OK。

实现自己的表增删改查

1、数据库表创建

2、创建Model,我们应该这么理解:在程序中要有一个类指向数据库表或者说表示某个表,虽然它可能仅仅是个空的类!然而阅读源码后会发现实体类在项目中真的只是用来告诉程序操作的目标表是谁。

/**
 * 创建对象只是为了与数据表建立关系
 * 如果实体里加点字段,完全不影响我们的 API JSON的数据库操作
 */
@MethodAccess(
        POST = {ADMIN}  //@MethodAccess决定了请求方式的权限,在这POST只有ADMIN角色才可使用
)
public class SysUser { }

3、创建类--表映射关系,如果类名和数据库名一致,方可忽略。(DemoSQLConfig)

 static {
        //表名称映射
        TABLE_KEY_MAP.put(SysUser.class.getSimpleName(),"sys_user");
 }

4、必要的权限注册,这样程序才能使用你配置的类权限去管理你的接口(DemoVerifier)

static { //注册权限
		ACCESS_MAP.put(SysUser.class.getSimpleName(), 
				getAccessMap(SysUser.class.getAnnotation(MethodAccess.class)));
	}

5、框架未确认开放性的操作,例如删除,我们需要到Request表中进行配置,才可以正常的访问。

删除就实现啦:

自定义登陆校验

userId是区别是否登录的唯一标识,那么我们应该这样自定义登陆校验:

框架原源码:(visitorId是userid赋值的,可见userId是区分登录状态的关键)

public void verifyLogin() throws Exception {
		//未登录没有权限操作
		if (visitorId == null) {
			throw new NotLoggedInException("未登录,请登录后再操作!");
		}

		if (visitorId instanceof Number) {
			if (((Number) visitorId).longValue() <= 0) {
				throw new NotLoggedInException("未登录,请登录后再操作!");
			}
		} 
        ......
}

自定义的话,我们需要在AbstractVerifier实现类中重写verifyLogin(),自定义我们登录认证逻辑!

	@Override
	public void verifyLogin() throws Exception {
		//重写父级
		System.err.println("重写了,我重写了!再也不用担心登录问题啦~~~~~~~~~~~~~~~~~~~~~~~~");
	}

自定义其他

如果自定义其他的逻辑,我们只需要重写框架内的抽象类方法

一个jar包开始搭建自己的APIJSON

数据库:

1、创建数据库,导入APIJSON基本的表。

2、创建Model,定制自己的@MethodAccess。并注册权限、映射表名。

3、重写AbstractSQLConfig、AbstractParser、AbstractObjectParser、AbstractSQLExecutor、AbstractVerifier、RemoteFunction,实现自己的逻辑。(过程很枯燥,会出问题,实现后你会对APIJSON有个新理解)

本文参考:https://github.com/TommyLemon/APIJSON

感谢APIJSON作者的开源精神,我相信我也会越来越强。

持续关注,我会继续分享APIJSON~

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

善良的大铁牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值