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(),自定义我们登录认证逻辑!
@Overridepublic 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~
APIJSON 自动化接口和文档的快速开发神器相关推荐
- Tencent APIJSON 零代码、全功能、强安全 ORM 库 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
项目介绍 零代码.全功能.强安全 ORM 库 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构. A JSON Transmission Protocol and an ORM ...
- Tencent APIJSON-自动化接口和文档 ORM 库开源啦
APIJSON是一种专为API而生的JSON网络传输协议以及基于这套协议实现的ORM库. 为简单的增删改查.复杂的查询.简单的事务操作提供了完全自动化的API. 能大幅降低开发和沟通成本,简化开发流程 ...
- 开源项目介绍 |APIJSON- 后端零代码接口和文档ORM 库
2021腾讯犀牛鸟开源人才培养计划 开源项目介绍 滑至文末报名参与开源人才培养计划 提交项目Proposal APIJSON项目介绍 标签:后端, ORM 库 技术栈:java APIJSON- 后端 ...
- Stark 组件:快速开发神器 —— 锦上添花
Stark 组件:快速开发神器 -- 锦上添花 一.分页 二.排序 三.搜索 1.关键字搜索 2.组合搜索 四.批量操作 经过前面几个篇章,我们的 Stark 组件已经能够批量生成 URL,快速实现增 ...
- Stark 组件:快速开发神器 —— 页面显示
说道 Stark 你是不是不会想到他--Tony Stark,超级英雄钢铁侠,这也是我的偶像. 不过我们今天要开发的 Stark 组件,倒是跟他的人工智能助手 JARVIS 有些类似,是帮助我们快速开 ...
- Stark 组件:快速开发神器 —— 模板设计
说道 Stark 你是不是不会想到他--Tony Stark,超级英雄钢铁侠,这也是我的偶像. 不过我们今天要开发的 Stark 组件,倒是跟他的人工智能助手 JARVIS 有些类似,是帮助我们快速开 ...
- Stark 组件:快速开发神器 —— 自动生成 URL
说道 Stark 你是不是不会想到他--Tony Stark,超级英雄钢铁侠,这也是我的偶像. 不过我们今天要开发的 Stark 组件,倒是跟他的人工智能助手 JARVIS 有些类似,是帮助我们快速开 ...
- SpringBoot 接口快速开发神器(接口可视化界面实现)
点击关注公众号,实用技术文章及时了解 简介 magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Control ...
- 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南
如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣.尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear ...
最新文章
- 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY3-线性模型
- Java中static的作用
- 大数据hadoop资源网址
- linux管理进程和计划任务,Linux进程和计划任务管理
- sscanf 连续相同编辑符_基于单调栈的滑动窗口法求解“和至少为 K 的最短连续子数组”...
- win10开移动热点让手机使用上网
- 【渝粤教育】国家开放大学2018年春季 0701-22T公共政策学 参考试题
- 华为复制加密门禁卡_小米手机的NFC可以随便复制其它小区用的门禁卡吗?
- Layui select 的动态添加
- 某大型连锁超市库存管理系统分析报告
- 东京喰种语录(节选)
- linux 宽带连接
- 鼠标在微信开发工具中消失(而在手机模拟器以外可以显示)
- 微信小程序页面栈超过【10层】之后无法打开其他页面原因
- HN2015集训 永远亭的竹笋采摘
- 计算机学术引用论文,我国计算机领域学术论文引用中的马太效应——以《计算机学报》和《计算机研究与发展》为例...
- [产品规划]行业公司如何做产品
- 想设计一个母亲节小程序c语言,用小程序做一张精美海报,对母亲说一句:祝您母亲节快乐!...
- Python基础语法入门篇(一)
- Mysql数据库的字段类型
热门文章
- python 实现TCP socket通信和 HTTP服务器、服务器和客户端通信python实例
- 2小时07分30秒!尘封逾15年中国马拉松国家纪录被打破 | 美通社头条
- 吉林中小学计算机考试成绩查询时间,中小学教师资格考试网:2020下半年吉林省教师资格笔试成绩查询入口...
- go和python区别_Go语言和Python哪一个更容易学呢?
- React 学习之父子组件传值
- 重磅!首届人工智能本科专业研讨会举办,这个学校已招收第一批本科生
- Raft 协议源码阅读
- Matlab复习手记:1.点乘和乘的区别
- 苹果 iPhone 4 手机拆机组图,看看 iPhone 4 的内部构造与零件(二)_打杂的_新浪博客...
- 2021Java春招,java开发报表工具