一种RESTfulAPI可视化方法

文档序号:9523982阅读:503来源:国知局
一种RESTful API可视化方法
【技术领域】
[0001]本发明涉及服务计算领域,服务组合基于RESTful架构的技术领域,具体涉及一种RESTful API可视化方法。
【背景技术】
[0002]现有很多对外提供服务的网站,如百度API store、聚合数据、API Cloud、leanCloud等等,这些服务提供商的网站都是基于RESTful架构。从Web开发技术的发展过程来看,Web从最初的主要支持静态页面,到后来越来越支持动态页面。静态页面为主典型代表有门户网站、电子商务网站、搜索引擎、社交网站,到后来交互性强的多人在线的网页游戏。Rest是Roy Fielding在他2000年的博士学位论文中提出的一种新的网站架构。REST本意是“Representat1nal State Transfer”,意思是表述性转移的缩写。所有网站符合REST设计风格都称为RESTful。分布式应用架构是REST非常成功的例子。
[0003]REST风格中有以下六个关键词:
1.资源(Resource)
资源是一种对服务器抽象的概念。将服务器看成由很多离散的资源组成,每个资源是服务器上一个可命名的抽象概念。一个资源可以由特定url来表示,客户端可以通过url来访问对应资源。
[0004]2.资源表述
资源表述表示某个资源某段时间内的状态表述。主要用于服务器和客户端进行数据交换。资源的表述可以有多种方式,以下几个比较常见的,如HTML/XML/JS0N/TXT/PNG等等。
[0005]3.状态转移
指客户端与服务器端之间转移代表资源状态表述。客户端以HTTP方式请求服务器上的资源,对资源进行操作,比如添加资源、修改资源、删除资源。
[0006]4.统一接口
客户端通过HTTP协议来访问服务器。正好HTTP的几个方法对应服务器资源的操作,GET方法表示获取资源,POST方法表示新建资源,DELETE方法表示删除资源,PUT表示更新资源。
[0007]5.超文本驱动
超文本驱动的全称为“将超媒体作为应用状态的引擎”。将Web应用看成一个很多状态组成的状态机。在应用中,不仅包含资源,还包含对资源操作的状态转移语义。
[0008]基于RESTful架构的网站,其对外提供的服务,可以统称为RESTful API。下文出现API都是指的RESTful API o RESTful架构通常是,客户端以HTTP或HTTPS方式对服务器发起请求,服务器返回数据格式一般是JS0N类型。开发者通过阅读相关的文档来使用API。但是每个服务提供商的API文档格式千奇百怪,有些文档并不够完善。甚至有时候API已经改变了,但没有及时更新文档也是常见问题。文档作为开发者唯一交流方式有很多弊端,并且不够直观易懂。

【发明内容】

[0009]针对上述的遇到的问题,本发明了一种RESTful API可视化方法,使API更加直观并且易懂。本发明基于API调用实例的返回数据,可视化展示API。
[0010]具体的,本发明的采用了如下技术方案:
一种RESTful API可视化方法,基于API调用实例的返回数据,可视化展示API,具体包括如下步骤:
1、分析API的输入结构和具体用途,构造输入用例;
2、执行步骤1中所述输入用例,得到返回数据,所述返回数据包括如下两类:
a.服务器返回有效数据;
b.服务器返回无效数据;
3、若步骤2中返回的是无效数据,提示返回无效数据;若返回的是有效数据,则解析有效数据,将其转化为模型数据;
4、使用自动布局算法,将所述模型数据按照算法可视化展现。
[0011]优选的,所述步骤1中构造输入用例具体包括如下步骤:
1.1根据需求,设计API节点基本信息;
1.2根据所述API节点基本信息,设计API输入结构;
1.3根据所述API输入结构,构造合理的输入用例。
[0012]优选的,所述步骤4具体包括如下步骤:
4.1定义ApiModel数据模型,用于描述API的功能用途及其它基本信息;
定义InputModel数据模型,用于表示API的输入结构根节点;
定义OutputModel数据模型,用于表示API的输出结构根节点;
4.2将所述InputModel、ApiModel、OutputModel按照从左到右的顺序,即横坐标从小变大,但纵坐标相等的顺序摆放;
4.3递归生成InputModel子树所有子模型坐标;从右向左顺序摆放元素,每个子节点与父节点的坐标差值为常量(_dx, dy);
4.4递归生成OutputModel子树所有子模型坐标;从左到右顺序摆放元素,每个子节点与父节点坐标差值为常量(dx, dy)。
[0013]本发明的有益技术效果在于:
(1)直观地将API的内部数据结构展现出来,利于开发者快速读懂API。比阅读API文档,更加的快速和直观。
[0014](2)只需要人工设计API的输入结构和输入数据示例,即可获得API的输出。一般API的输出结构比较复杂,该方法可以减少手动设计API的工作量。
[0015](3)可视化展现API结构,人工辅助给每个节点,添加一些描述信息,最后可以自动生成统一格式的文档。
【附图说明】
[0016]图1为本发明一个实施例的实现框架示意图;
图2为本发明一个实施例火车票到站查询的示例图。
[0017]
【具体实施方式】
[0018]为了更加具体描述本发明,下面结合附图及【具体实施方式】对本发明的技术方案详细说明。
[0019]为了可视化的图形显示API结构,本发明定义了一种资源模型,即将整个API看成一个树状结构,节点表示数据字段(字段对应值对类型的数据),而连线表示字段之间的包含关系,如果节点有子节点,那么子节点表示的数据字段为父节点的内部字段。API节点表示根节点,其子节点有输入和输出。
[0020]本发明的一种RESTful API可视化方法,包括如下步骤:
(1)分析API的输入结构和用途,构造合理的输入用例;
(2)执行(1)输入用例,获得返回数据,返回数据分两类: i服务器返回正常的有效数据;
ii服务未返回有效的数据;
(3)若返回的是有效数据,则解析(2)返回数据,将其转化为模型数据;若返回的是无效数据,则提示返回无效数据
在本发明的一个实施例中,为了实现上述步骤⑵中,将JS0N数据对应成内存中的模型数据,本实施例定义了 KeyValueMode 1来对应JS0N的值对,定义了连线模型LineConnect1nModel表示JS0N字段的内部字段包含关系。定义了 ApiModel模型数据,用来描述API的功能用途等基本信息,InputModel数据模型表示API的输入结构根节点,OutputModel数据模型表示API的输出结构根节点,连线模型用于表示模型数据节点之间的包含关系。本文使用了 MVC设计模式,可以直接模型Model映射成视图View,通过控制器Controller来管理Model与View之间的联系。当用户操作视图时,Controller可以将用户输入数据转化为对应的模型数据。当模型改变时,Controller将响应模型对应视图View的变化。
[0021]上述步骤(2)中,对返回结果1的处理具体过程如下:
以下方法使用到第三方JS0N解析开源工具JSON-lib。将整个JS0N的作为一个输出的根节点,使用迭代器方法深度优先遍历整个JS0N数据结构。假设当前迭代器指向的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1