
开放接口平台
猿敲月下码
开源软件作者
展开
-
(十三)app_key和secret存放在数据库或redis中
这里以redis为例新建一个RedisAppSecretManager类实现AppSecretManager接口/** * 使用方式: * * <pre>@Autowiredprivate AppSecretManager appSecretManager;@Overrideprotected void initApiConfig(ApiConfig apiC...原创 2018-04-26 11:03:36 · 2256 阅读 · 0 评论 -
(十二)自定义session管理
easyopen1.4.0开始支持自定义session管理。创建session登陆成功后创建session,并返回sessionId// 自定义session @PostMapping("managedSessionLogin") public String managedSessionLogin(HttpServletRequest request) { ...原创 2018-04-26 11:02:36 · 1777 阅读 · 0 评论 -
(十一)拦截器
easyopen在1.3.1版本开始支持拦截器。easyopen拦截器实现原理跟springmvc拦截器类似,拦截器作用在api方法上,即有@Api注解的方法。拦截器定义如下:/** * 拦截器,原理同springmvc拦截器 * @author tanghc * */public interface ApiInterceptor { /** * 预处理回调...原创 2018-04-26 11:01:18 · 331 阅读 · 0 评论 -
(十)使用oauth2
如果第三方应用和本开放平台对接时需要获取用户隐私数据(如商品、订单),为为了安全与隐私,第三方应用需要取得用户的授权,即获取访问用户数据的授权令牌 AccessToken 。这种情况下,第三方应用需要引导用户完成帐号“登录授权”的流程。easyopen从1.2.0版本开始支持oauth2认证。接入方式很简单:新建一个Oauth2ManagerImpl类,实现Oauth2Manager接口...原创 2018-04-26 11:00:23 · 1582 阅读 · 0 评论 -
(九)生成文档页面
easyopen提供一个简单的api文档查看页面,类似于swagger,基于注解功能来生成文档页面。生成的文档页面可以查看参数、结果说明,也可以进行模拟请求。对于前后端分离的项目来说会很有帮助。文档界面如下图所示:左边的树形菜单对应文档名称,点击树可前往查看对应的接口说明。点击请求按钮可以发起请求进行测试。可修改业务参数中的值进行测试。下面来讲解文档注解的使用方法。文档页面默认是关...原创 2018-04-26 10:58:23 · 625 阅读 · 0 评论 -
(八)接口交互详解
本篇介绍一个接口请求的完整交互过程。请求参数easyopen定义了7个固定的参数,用json接收{ "name":"goods.get", "version":"2.0", "app_key":"test", "data":"%7B%22goods_name%22%3A%22iphone6%22%7D&quo原创 2018-04-26 10:41:08 · 5009 阅读 · 0 评论 -
(六)自定义结果返回
本篇介绍如何改变JSON输出策略以及改变返回结果字段名改变json输出策略默认使用阿里的fastjson进行json输出JSON.toJSONString(obj)如果要更换输出策略,操作方式如下:@Overrideprotected void initApiConfig(ApiConfig apiConfig) { ... // 自定义json格...原创 2018-04-26 10:36:32 · 905 阅读 · 0 评论 -
(四)业务参数校验
业务参数校验采用JSR-303方式,关于JSR-303介绍可以参考这篇博文:JSR 303 - Bean Validation 介绍及最佳实践在参数中使用注解即可,框架会自动进行验证。如下面一个添加商品接口,它的参数是GoodsParam@Api(name = "goods.add")public void addGoods(GoodsParam param) { ...}...原创 2018-04-20 22:21:00 · 990 阅读 · 0 评论 -
(三)easyopen快速开始
eclipse下(idea原理一样)下载或clone项目https://gitee.com/durcframework/easyopen.git 下载zipeclipse右键import… -> Exsiting Maven Projects。选择easyopen目录导入到eclipse后会有三个工程,等待相关jar包下载。全部jar下载完毕后,启动easyopen-server...原创 2018-04-20 21:51:30 · 1843 阅读 · 0 评论 -
(二)springmvc项目整合easyopen
git中的easyopen-server 默认是springboot项目,接下来介绍如何使用springmvc项目来整合easyopen。新建工程eclipse新建一个springmvc工程,工程名为myopen,建好后的工程结构如下:添加依赖打开pom.xml添加easyopen依赖<dependency> <groupId>n...原创 2018-04-20 21:44:36 · 1141 阅读 · 0 评论 -
(一) easyopen介绍
easyopen一个简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。easyopen的功能类似于淘宝开放平台,它的所有接口只提供一个url,通过参数来区分不同业务。这样做的好处是接口url管理方便了,平台管理者只需维护好接口参数即可。由于参数的数量是可知的,这样可以在很大程度上进行封装。封装完后平台开发者只需要写业务代码,其它功能可以通过配置来...原创 2018-04-20 16:34:44 · 2952 阅读 · 1 评论 -
(七)自定义序列化
easyopen序列化使用fastjson处理json,xstream处理xml。现在我们来自定义实现一个json处理:新建一个类JsonFormatter,实现ResultSerializer接口public class JsonFormatter implements ResultSerializer { @Override public String seri...原创 2018-04-23 10:22:03 · 269 阅读 · 0 评论 -
(五)错误处理
easyopen对错误处理已经封装好了,最简单的做法是向上throw即可,在最顶层的Controller会做统一处理。例如:if(StringUtils.isEmpty(param.getGoods_name())) { throw new ApiException("goods_name不能为null");}或者if(StringUtils.isEmpty(param....原创 2018-04-23 10:15:29 · 447 阅读 · 0 评论 -
一个接口开放平台,使用简单,易维护,文档全
easyopen一个简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。git地址:https://gitee.com/durcframework/easyopen原创 2018-03-14 14:11:13 · 12888 阅读 · 0 评论 -
easyopen原理解析——不到100行代码实现一个最精简的easyopen
easyopen的核心代码非常简单,底层是调用method.invoke()方法实现的。最精简的代码如下:import java.lang.annotation.Documented;import java.lang.annotation.Retention;import java.lang.annotation.Target;import java.lang.reflect.Method...原创 2018-10-08 15:11:09 · 1682 阅读 · 0 评论