API管理平台XXL-API

《API管理平台XXL-API》

一、简介

1.1 概述

XXL-API是一个简洁易用API管理平台,提供API的"管理"、"文档"、"Mock"和"测试"等功能。现已开放源代码,开箱即用。

1.2 特性

  • 1、极致简单:交互简洁,一分钟上手;
  • 2、项目隔离:API以项目为维度进行拆分隔离;
  • 3、分组管理:单个项目内的API支持自定义分组进行管理;
  • 4、标记星级:支持标注API星级,标记后优先展示;
  • 5、API管理:创建、更新和删除API;
  • 6、API属性完善:支持设置丰富的API属性如:API状态、请求方法、请求URL、请求头部、请求参数、响应结果、响应结果格式、响应结果参数、API备注等等;
  • 7、markdown:支持为API添加markdown格式的备注信息;
  • 8、Mock:支持为API定义Mock数据并制定数据响应格式,从而快速提供Mock接口,加快开发进度;
  • 9、在线测试:支持在线对API进行测试并保存测试数据,提供接口测试效率;

1.3 下载

文档地址

源码仓库地址

源码仓库地址 Release Download
https://github.com/xuxueli/xxl-api Download
http://git.oschina.net/xuxueli0323/xxl-api Download

技术交流

1.4 环境

  • Servlet/JSP Spec:3.0/2.2
  • JDK:1.7+
  • Tomcat:7+/Jetty8+
  • Mysql:5.6+
  • Maven:3+

二、快速部署

2.1 初始化“调度数据库”

请下载项目源码并解压,获取 "初始化SQL脚本",脚本位置:

/xxl-api/db/xxl-api-mysql.sql

2.2 编译源码

解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下图所示:

输入图片说明

2.3 配置JDBC连接

在以下项目文件中设置应用的JDBC连接;

/xxl-api/xxl-api-admin/src/main/resources/xxl-api.properties

2.4 部署

将应用"xxl-api-admin"部署在容器如Tomcat下之后,启动后访问即可进入以下界面:

输入图片说明

三、项目管理

系统中API以项目为单位进行管理,因此首先需要管理项目;项目管理界面如下图所示;

输入图片说明

3.1 新建项目

进入项目管理界面,点击右侧"+新增项目"按钮可新建项目,如下图所示:

输入图片说明

项目属性说明:

项目名称:项目的名称;
项目描述:项目的描述信息;
访问权限:"公开"权限,表示所有人可操作;"私有"权限,表示只有管理员或者项目成员可以操作(功能自测中,即将推送);
跟地址-线上环境:项目线上环境跟地址,项目中的API共用该跟地址;
跟地址-预发布环境:项目预发布环境跟地址;
跟地址-测试环境:项目测试环境跟地址;
版本:项目的版本信息;

3.2 更新项目

进入项目管理界面,点击项目右侧的"编辑"按钮可更新项目信息,如下图所示;

输入图片说明
输入图片说明

3.3 删除项目

进入项目管理界面,点击项目右侧的"删除"按钮可删除项目信息;注意,项目中存在API时不允许删除;

四、API管理

在项目管理界面,点击项目右侧的"进入项目"按钮,可进入接口管理界面,如下图所示:

输入图片说明

4.1 API分组管理

  • 新增API分组

如下图,点击"左侧接口分组区域"右上角的"+"按钮,可新增AIP接口分组;(点击"全部"将会展示项目中所有分组下的接口;"默认分组"为系统分组,不允许删除;)

输入图片说明
输入图片说明

接口分组属性说明:

分组名称:分组的名称
分组排序:分组的排序顺序,数字类型,值越小越靠前;
  • 更新API分组

在"左侧接口分组区域",点击对应的API分组,右侧将会展示该分组下API接口列表;如下图,点击接口列表顶部的"编辑分组"按钮(新增的API分组才会有该功能),可修改API分组信息;

输入图片说明
  • 删除API分组

在"左侧接口分组区域",点击对应的API分组,右侧将会展示该分组下API接口列表;点击接口列表顶部的"删除分组"按钮(新增的API分组才会有该功能),可修改API分组信息;

4.2 API管理

  • 新增API

如下图,在API接口管理界面,点击接口列表顶部的"新增接口"按钮,可进入新增接口界面;
在新增接口界面,如下图所示,可以设置接口的API状态、请求方法、请求URL、请求头部、请求参数、响应结果、响应结果格式、响应结果参数、API备注等等信息;

输入图片说明
输入图片说明
输入图片说明
输入图片说明

API属性说明:

基础信息:
    接口分组:接口所属的分组;
    接口状态:接口的状态,在接口列表中,启用状态接口用绿色圆圈标识,维护状态接口用黄色圆圈标识,废弃状态接口用灰色圆圈标识;
    请求方法:请求方法,如POST、GET等;
    接口URL:接口请求的URL地址,注意此处为相对地址,跟地址从所属项目的跟地址属性上获取;
    接口名称:接口的名称;
请求头部:同一接口支持设置多个请求头部;
    头部标签:请求头部的类型,如Accept-Encoding;
    头部内容:请求头部的数据,如Accept-Encoding头部标签的头部内容UTF-8;
请求参数:同一接口支持设置多个请求参数;
    是否必填:该参数是否必填;
    参数类型:该参数的数据类型,如STRING;
    参数名称:参数的名称;
    参数说明:参数的说明;
响应结果:分别支持设置 "成功响应结果" 和 "失败响应结果",作为接口响应数据的参考;
    响应数据类型(MIME):响应结果类型,如JSON、XML等;
    响应结果数据:响应结果的数据,如响应结果类型为JSON时可设置响应结果数据为一段JSON数据;
响应结果参数:对接口"响应结果"中参数的补充说明,如响应结果类型为JSON时,可在此处一一列出JSON各个字段的参数信息;
    是否非空:该参数是否可能为空;
    参数类型:该参数的数据类型,如STRING;
    参数名称:参数的名称;
    参数说明:参数的说明;
接口备注:markdown方式的接口备注;
  • 更新API

在API接口管理界面,点击接口右侧的"更新接口图标"按钮,可进入更新接口界面;

输入图片说明
输入图片说明
  • 删除API

在API接口管理界面,点击接口右侧的"删除接口图标"按钮,可删除接口数据;

4.3 API-Mock

  • 新增Mock数据
    在API接口管理界面,点击接口名称,进入"接口详情页",在接口详情页的"Mock数据"模块右上角点击"+Mock数据"按钮,可新增Mock数据;

Mock数据属性说明:

数据类型(MIME):响应结果类型,如JSON、XML等;
结果数据:响应结果的数据,如响应结果类型为JSON时可设置响应结果数据为一段JSON数据;
输入图片说明
输入图片说明
输入图片说明
  • 更新Mock数据
    在"接口详情页"的"Mock数据"模块,点击Mock数据列表右侧的"修改"按钮,可修改Mock数据;
输入图片说明
输入图片说明
  • 删除Mock数据

在"接口详情页"的"Mock数据"模块,点击Mock数据列表右侧的"删除"按钮,可删除Mock数据;

  • 运行Mock数据

在"接口详情页"的"Mock数据"模块,点击Mock数据列表右侧的"运行"按钮,可运行Mock数据;
系统将会为每一条Mock数据生成一个唯一的Mock连接,访问该连接将会按照设置的数据类型如JSON返回对应格式的Mock数据,如下图所示;

输入图片说明

4.4 API-测试

  • API-测试
    进入"接口详情页",点击"Test历史"模块右上角的"+接口测试"按钮,可进入"接口测试界面",
    该界面将会自动初始化接口URL(测试界面支持选择运行环境,将会自动生成不同环境的完整URL连接)和参数等信息。
    只需要填写测试的参数值,点击下方"运行"按钮,即可发起一次接口请求,请求结果将会在下方显示出来:
输入图片说明
输入图片说明
  • 保存Test历史

在"接口测试界面",在进行接口测试后, 点击下方"保存"按钮将会把本次测试数据(接口URL,测试参数等信息)保存下来。
在"接口详情页"的"Test历史"模块可查看所有的接口测试历史记录。点击一次测试记录右侧的"运行"按钮,将会进入到本次测试记录对应的接口测试界面,还原当时测试时使用的测试数据;

  • 删除Test历史

在"接口详情页"的"Test历史"模块,点击测试历史记录右侧的"删除"按钮可删除本条记录;

五、用户管理

5.1、新增用户

进入用户管理界面,点击右上角"+新增用户"按钮,可添加用户信息;

输入图片说明
输入图片说明

用户属性说明:

登录账号:用户的登录账号;
登录密码:用户的登录密码;
用户类型:
    普通用户:只允许操作公开项目,或者自己拥有项目权限的私有项目;
    超级管理员:拥有所有项目的操作权限;
真实姓名:用户的真实姓名;

5.2、更新用户

进入用户管理界面,点击用户列表页中用户右侧的"编辑"按钮可编译用户信息;

5.3、删除用户

进入用户管理界面,点击用户列表页中用户右侧的"删除"按钮可删除用户信息;

六、版本更新日志

七、其他

7.1 项目贡献

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

7.2 用户接入登记

更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。

7.3 开源协议和版权

产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。

  • Licensed under the GNU General Public License (GPL) v3.
  • Copyright (c) 2015-present, xuxueli.

捐赠

无论金额多少都足够表达您这份心意,非常感谢 :) XXL系列捐赠记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,453评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 近来真的体验到了笑来老师说的“意外的好运”,我觉得做一个好人是获得好运的前提,而笑来老师说的方法论是平时需...
    乐淘淘在曼城阅读 438评论 0 1
  • 我回家工作,已经快4个月了,期间各种的不适应,以前在广州实习的时候,我们这些实习生是属于年龄小的,都得到同事...
    哈皮小孩阅读 141评论 0 0