基于RESTful架构的科技信息共享接口系统的设计
2018-12-22黄沛
黄 沛
基于RESTful架构的科技信息共享接口系统的设计
黄 沛
(四川省科学技术信息研究所,四川 成都 610016)
在一个包含了多个子系统的大型科技综合服务平台系统里,需要各个子系统间相互交换共享数据,为此采用RESTful架构设计了科技信息共享接口系统,为各个子系统提供了相互存取各自可公开的私有数据的能力,同时避免了传统方法开发量大兼容性差的弊端。
RESTful;数据共享;Web Service;HTTP协议
0 引言
一个大型的科技综合服务系统往往是由多个子系统构成的:例如信息采集系统、交流评论系统、发布展示系统等,这些系统内部的数据资源经常需要相互之间进行交换共享,然而通过传统的方法存在着开发工作量过大、平台兼容性差等缺陷,通过基于RESTful架构设计一套简洁高效安全的科技信息共享接口系统,可以比较有效的解决上述问题。
1 技术原理
RESTful[1]架构是一种互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,正得到越来越多网站系统的采用。RESTful架构是Roy Thomas Fielding博士首先提出的一种互联网软件架构原则,REST是Representational State Transfer(表现层状态转换)的缩写,Roy Thomas Fielding博士是HTTP协议(1.0版和1.1版)的主要设计者。
此架构的基本原理[1]描述如下:
(1)将互联网上任何一个资源(包括文本、图片、视频、歌曲、服务等),用一个URI(统一资源定位符)指向它,由于资源表示一种实体,所以URI在命名时应该使用名词而不能是动词,例如;http://api.somesite.net/users。
(2)通过HTTP协议中四个操作方法:GET、POST、PUT、DELETE完成对上述资源的存取操作,其中GET用来获取资源(一项或多项),POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
(3)资源的表现形式需要客户端和服务端通过HTTP协议进行协商,即客户端需要通过Accept头请求其可以接受的特定的资源格式,服务端则通过Content-Type头告诉客户端其发出的资源格式。对于文本资源,可以采用HTML、XML、JSON 等格式,对于图片资源,可以采用用PNG或JPG格式。
2 优势
采用RESTful架构设计的互联网软件,相对于传统的使用基于SOAP(Simple Object Access Protocol,即简单对象访问协议)协议的Web Service[7-9](即Web服务)模式开发的应用系统,具有以下 优点[2-6]:
(1)可以高效利用缓存来提高响应速度。SOAP Web Service系统随着不断的增加协议内容,体系变得庞大臃肿,流程环节繁多,使得服务器提供数据存取的缓存机制变得非常复杂,甚至不可实现;而RESTful系统则由于实现简洁、环节单一,服务器可以非常方便的对其提供各种缓存加速机制。
(2)软件依赖性小。SOAP Web Service系统由于体系复杂,为方便开发,不同的开发环境需要提供各自的开发框架;而RESTful系统则只要开发环境能够支持HTTP协议[10]开发即可。
(3)不需要额外的资源发现机制。SOAP Web Service系统在接口定义上有严格的要求,各种数据规格都有精确的规定,因而也要求必须定义一套复杂的资源发现机制,而RESTful系统则不用这样。
(4)兼容性好。采用RESTful架构开发的系统,可以在不同的开发环境中直接使用,不需额外配置,而SOAP Web Service系统则必须根据不同的开发环境进行不同程度的调整。
3 系统实现
3.1 全库检索
1、功能:获取系统所有可公开的信息列表。
2、API接口定义:
GET/alllist?catalog=
catalog即搜索的栏目编号;keyword即搜索关键词;thispage 和 pagesize 为分页使用的参数,分别表示当前要取第几页的数据和每页数据条数。
3、返回值:返回结果为如下Json格式:
{
“issuccess” : “true/false” , //数据获取成功或失败
“totalnum” : “100” , //总条数
“wordspace”: “搜索的关键词”
//返回搜索关键词, 套红时使用
“result” : [ //结果列表
{
“name” : “标题”, //信息标题
“url” : “http://xxx.com/Detail.aspx?
pid=123456”,
“infoabstract”: “摘要”,
//信息摘要内容(200字以内)
“source”: “信息来源名称”,
//信息来源名称
“sourcewebsite” :“http://xxx.com”,
//信息来源网址
“createtime” : “2014-08-04”
//发布时间
},
…
],
“hint” : “成功/失败的说明。”//数据获
取成功说明或失败的原因
}
3.2 最热门数据
1、功能:获取最热门的数据列表,默认返回最前面的8条数据。
2、API接口定义:
GET /toplist?catalog=
catalog即搜索的栏目编号。
3、返回值:返回结果为如下Json格式:
{
“issuccess” : “true/false” , //数据获取成功或失败
“result” : [ //结果列表
{
“name” : “标题” , //信息标题
“url” : “http://xxx.com/Detail.aspx?
pid=123456”,
“createtime” : “2014-08-04”
//发布时间
},
…
] ,
“hint” : “成功/失败的说明。”//数据获取成功说明或失败的原因
}
3.3 科技文献数据
1、功能:获取科技文献数据列表。
2、API接口定义:
GET/techdoc?tp=
tp即文献类型;keyword即查询关键字;thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。
3.4 科技成果数据
1、功能:获取科技成果数据列表。
2、API接口定义:
GET/techresult?tp=
tp即数据分类(科技成果:0,科技项目:1,科技需求:2,科技专家:3);thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。
3.5 科技报告数据
1、功能:获取科技报告数据列表。
2、API接口定义:
GET/techreport? keyword=
keyword即查询的关键字,格式为“字段:关键字”,多关键字检索用逗号分开,例如“字段1:关键字1,字段2:关键字2”,采用UTF-8编码;thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。
4 结语
采用RESTful架构设计的科技信息共享接口系统,有效解决了大型科技综合服务系统中各个分/子系统间数据共享交换的难题,简化了程序设计,改善了各系统间的兼容性,提高了平台的总体性能。目前,该共享接口系统已在四川省科技创新综合服务平台中得到应用,经过实际运行证明其设计思想是正确和可行的,为今后类似系统的设计开发提供了借鉴和参考。
[1] Leonard Richardson, Sam Ruby, Mike Amundsen. RESTful Web APIs[M]. O¢Reilly Media, 2013.
[2] 李莹, 柳生鹏, 赵朗, 潘纲. 自适应RESTful Web API进化模型的研究[J]. 计算机集成制造系统, 2017, (5): 1020-1030.
[3] 唐明伟, 苏新宁, 蒋勋. RESTful Web服务和知识库协同驱动的突发事件网络舆情实时追踪[J]. 山东大学学报: 理学版, 2017, (6): 49-55.
[4] 王卫列. Restful+OData: 企业信息系统集成的简明之道[J]. 计算机应用与软件, 2017, (12): 147-153
[5] 曹步清, 文一凭, 王少伟. 基于Restful的Mashup应用服务系统[J]. 计算机应用与软件, 2016, (2): 17-20, 50.
[6] 高攀攀, 王健, 黄颖, 何克清. 互联网上基于SOAP和REST的Web服务的对比分析[J]. 小型微型计算机系统, 2015, (11): 2417-2421.
[7] Wang S, Sun Q, Zou H, Yang F. Particle Swarm Optimization with Skyline Operator for Fast Cloud-based Web Service Composition[J]. Mobile Networks and Applications, 2013, 18(1): 116-121.
[8] Wang S, Zheng Z, Wu Z, Lyu M, Yang F. Reputation Measurement and Malicious Feedback Rating Prevention in Web Service Recommendation Systems[J]. IEEE Transactions on Services Computing, 2015, 8(5): 755-767.
[9] 陈玉亮, 薛燕平. 基于WebService的数字档案资源集成研究与实现[J]. 软件, 2015, 36(9): 39-41.
[10] 阮晓龙. HTTP协议状态检测与性能分析软件的设计与实现[J]. 软件, 2015, 36(7): 136-141.
Design of Sharing Interface System For Technology Information Base on Restful Architecture
HUANG Pei
(Institute of Scientific and Technical Information of Sichuan, Chengdu 610016, Sichuan, China)
In a large-scale technology integrated service platform system that includes multiple subsystems, mutual exchange of shared data among the various subsystems is required. A RESTful architecture is adopted to design a sharing interface system for technology information to provide mutual access for each subsystem. It provides each subsystem with the ability to access each other¢s disclosed private data, and avoids the disadvantages of the large development amount and poor compatibility of the traditional methods.
RESTful, Data sharing, Web Service, Http protocol
TP393.09
A
10.3969/j.issn.1003-6970.2018.07.036
黄沛(1975),男,研究方向:计算机应用。
本文著录格式:黄沛. 基于RESTful架构的科技信息共享接口系统的设计[J]. 软件,2018,39(7):170-172