easyopen 1.0.3 发布,简单易用的接口平台

栏目: 软件资讯 · 发布时间: 6年前

内容简介:easyopen 1.0.3 发布,此次更新内容有: 调整文档页面样式 代码优化,完善注释 easyopen的由来 一次偶然的机会了解到淘宝开放平台,比较喜欢它的API调用方式(介绍),京东开放平台也是用此类似方式。它的所有接口...

easyopen 1.0.3 发布,此次更新内容有:

  • 调整文档页面样式

  • 代码优化,完善注释

easyopen的由来

一次偶然的机会了解到淘宝开放平台,比较喜欢它的API调用方式(介绍),京东开放平台也是用此类似方式。它的所有接口只提供一个URL链接,然后通过参数名来区分不同的接口。做过web开发的都知道,一般一个接口url对应后台程序是一个方法,比如springmvc中Controller的一个方法。那么只提供一个url,它是如何来区分具体的哪个方法呢。因为没有看到源码不敢下结论,这里我只想到了两种思路:

第一种方法:服务端做个代理,然后具体请求到对应url

比如客户端请求url是:http://xxx/api/rest?name=goods.get,代理服务器拿到name转发到http://xxx/api/rest/get_goods。也就是说要将goods.get和http://xxx/api/rest/get_goods关联起来。

第二种方法:服务端将goods.get跟方法关联起来

这个怎么关联呢,可以在方法上加一个注解@Api(name="goods.get"),然后服务启动的时候扫描这个类,找到方法,找到方法后就能找到对应@Api注解,拿到name,然后通过一个Map<name,MethodInfo>把他们关联起来。

关联起来后,如何调用呢?客户端请求过来是可以拿到name的,然后通过name找到对应的MethodInfo,就可以进行invoke操作了。整个流程走通之后接着就可以做其它的事情了,比如数字签名验证等功能。

其实这种思想有点类似springmvc的原理,是行得通的。如果用springmvc实现的话,就只有一个Controller,伪代码如下:

@RequestMapping(method = RequestMethod.POST)
    public void index(HttpServletRequest request, HttpServletResponse response) throws Throwable {
        
        String name = request.getParameter("name");

        MethodInfo methodInfo = map.get(name);

        Param param = methodInfo.getParam();

        param.validate(); // 校验

        Object obj = methodInfo.invoke(); // 执行
        writeResult(obj); // 返回结果
}

easyopen的实现原理就是第二种方法。可以看到这种设计的一个好处是可以做到统一的参数校验,统一的结果返回。开发人员只需要写好service层的代码即可。

easyopen的功能

  • 开箱即用,写完业务代码直接启动服务即可使用,无需其它配置。

  • 参数自动校验,支持国际化参数校验(JSR-303)。

  • 校验功能和结果返回功能实现各自独立,方便自定义实现或扩展。

  • 采用注解来定义接口,维护简单方便。

  • 支持i18n国际化消息返回。

  • 自动生成文档页面,类似swagger。

  • 采用数字签名进行参数验证,签名算法见:easyopen\签名算法.txt。

  • 采用appKey-secret形式接入平台,即需要给接入方提供一个appKey和secret。

更多功能可参考开发文档,在最下方。

结构图

easyopen 1.0.3 发布,简单易用的接口平台

文档页面

easyopen 1.0.3 发布,简单易用的接口平台

文档页面一般提供给客户端,开发人员也可以进行一些简单测试。

easyopen项目托管在了码云:

地址:https://gitee.com/durcframework/easyopen  
开发文档:http://durcframework.gitee.io/easyopen


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

松本行弘的程式世界

松本行弘的程式世界

松本行弘 / 鄧瑋敦 / 博碩 / 2010年07月27日

讓Ruby之父教您大師級的程式思考術! 本書以松本行弘先生對程式本質的深層認知、各種技術之優缺點的掌握,闡述Ruby這套程式語言的設計理念,並由此延伸讓您一窺程式設計的奧妙之處。本書內含許多以Ruby、Lisp、Smalltalk、Erlang、JavaScript等動態語言所寫成的範例,從動態語言、函數式程式設計等領域開展您的學習視野。 本書精華: ‧物件導向與抽象化 ‧......一起来看看 《松本行弘的程式世界》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换