CN106254423A - 基于微服务架构实现Restful服务快速发布的方法 - Google Patents

基于微服务架构实现Restful服务快速发布的方法 Download PDF

Info

Publication number
CN106254423A
CN106254423A CN201610571562.0A CN201610571562A CN106254423A CN 106254423 A CN106254423 A CN 106254423A CN 201610571562 A CN201610571562 A CN 201610571562A CN 106254423 A CN106254423 A CN 106254423A
Authority
CN
China
Prior art keywords
restful
service
micro services
api
services framework
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610571562.0A
Other languages
English (en)
Other versions
CN106254423B (zh
Inventor
王召
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Original Assignee
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PRIMETON INFORMATION TECHNOLOGY Co Ltd filed Critical PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority to CN201610571562.0A priority Critical patent/CN106254423B/zh
Publication of CN106254423A publication Critical patent/CN106254423A/zh
Application granted granted Critical
Publication of CN106254423B publication Critical patent/CN106254423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于微服务架构实现Restful服务快速发布的方法,包括如下步骤:(1)进行图形化服务装配处理;(2)进行服务运行处理。采用该基于微服务架构实现Restful服务快速发布的方法,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成Restful API;极大的提高了微服务应用***之间的集成效率,让业务逻辑可以快速、直观的发布为Restful服务,降低了开发维护的成本;同时运用本发明的方法可以快速、直观的将现有的业务功能发布为Restful服务,便于企业业务架构向微服务架构转型而且工作性能稳定可靠,具有广泛的应用范围,为业务***微服务化软件技术的进一步发展奠定了坚实的基础。

Description

基于微服务架构实现Restful服务快速发布的方法
技术领域
本发明涉及计算机软件技术领域,尤其涉及微服务架构应用***技术领域,具体是指一种基于微服务架构实现Restful服务快速发布的方法。
背景技术
在2014年,Sam Newman,Martin Fowler在Thought Works的一位同事,出版了一本新书《Building Microservices》。该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的***。除此之外,该书还将基于该模式的***演化流程与Continuous Delivery(持续交付)等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具有吸引力。基于这些原因,该架构模式迅速被业界所熟知,并在多个产品中成功的使用,产生巨大影响力。
REST(Representational State Transfer,表述性状态转移)描述了一个架构样式的网络***,比如web应用程序。它首次出现在2000年Roy Fielding的博士论文中,他是HTTP规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Accessprotocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是Restful。
随着组件拆分、服务解耦,各组件之间的调用均是通过接口实现,REST可以让这些拆分后的服务风格统一、便于维护和管理,以及REST的简单明确,服务直接通信和在http之上的相互同步,而且因为它们不需要任何额外的底层架构,使得REST成为微服务同步通信首要选择。
先来看看传统的web开发方式,通过对比比较容易理解什么是MicroserviceArchitecture。与Microservice(微服务)相对应的,这种方式一般被称为Monolithic。所有的功能打包在一个WAR包里,部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有逻辑。(如图1所示)
由于Monolithic存在以下缺点:(1)开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断;(2)代码维护难:代码功能耦合在一起,新人不知道何从下手;(3)部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长;(4)稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉;(5)扩展性不够:无法满足高并发情况下的业务需求,以及开发语言和架构的选型与变更。所以,现在主流的设计一般会采用Microservice Architecture,就是基于微服务的架构。简单来说,如图2所示,微服务的目的是有效的拆分应用,实现敏捷开发和部署。
微服务架构由于存在多个微服务,那么服务之间的通信就显得很重要,服务之间的通信方式有两种:基于HTTP协议的同步机制(REST、RPC);基于消息队列的异步消息处理机制(AMQP-based message broker)。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是Restful,同时其轻量级以及通过HTTP直接传输数据的特性,微服务中使用Restful架构已经成为最常见方法。要理解Restful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义,具体如下所示:
资源(Resources):REST的名称“表现层状态转化”中,省略了主语。“表现层”其实指的是“资源”(Resources)的“表现层”。
所谓资源,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。所谓“上网”,就是与互联网上一系列的“资源”互动,调用它的URI。
表现层(Representation):“资源”是一种信息实体,它可以有多种外在表现形式。我们把资源具体呈现出来的形式,叫做它的“表现层”(Representation)。比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。
URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的“.html”后缀名是不必要的,因为这个后缀名表示格式,属于“表现层”范畴,而URI应该只代表“资源”的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对“表现层”的描述。
状态转化(State Transfer):访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是“表现层状态转化”。
客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
在目前主流的开发语言都存在相应的Restful框架,比如Java中的Rest Easy,Spring MVC;PHP中的Slim Framework,Yii;Ruby中的Grape等等。
虽然Restful很好的解决了微服务之间同步基于Http的通信,但是目前所有框架没有考虑到对于已存在***(由于原来***没有使用Restful的框架)支持。由于Java语言在市场占有率达到20%多,本次主要拿Java语言做整体解决方案的范例。原来已经存在的Javabean因为没有使用Restful框架,无法进行Restful API的发布,企业面临这个问题往往只能把原来的***进行重新开发,面临着技术框架的选型以及升级,会带来导致容易出错以及***的安全性与稳定性问题,同时会带来巨额的成本负担。针对这种情况,我们提供一种图形化技术,对于底层进行包装,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成Restful API。该技术可极大提高微服务***之间的集成效率,让业务逻辑可以快速、直观的发布为Restful服务,大大提高了开发效率以及老***无成本变成微服务***,普元EOS产品的Restful服务发布组件正是基于该技术实现。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现动态、快速发布Restful的API接口并将Javabean发布成Restful API的基于微服务架构实现Restful服务快速发布的方法。
为了实现上述目的,本发明的具有如下构成:
该基于微服务架构实现Restful服务快速发布的方法,包括如下步骤:
(1)进行图形化服务装配处理;
(2)进行服务运行处理。
较佳地,所述的步骤(1)包括如下步骤:
(1-1)判断现有业务功能的方法是否已经发布过Restful服务API接口,如果是,则继续步骤(1-5),否则继续步骤(1-2);
(1-2)新建构件包;
(1-3)在该新建的构件包中创建装配图文件;
(1-4)根据用户的操作,将现有业务功能的实现拖拽到装配图中,生成一个或多个Restful的API接口和相关的doc描述文档,继续步骤(1-6);
(1-5)用户点击功能列表图示,修改一个或多个Restful的API接口以及相关的doc描述文档;
(1-6)保持装配图文件,且由面向微服务架构应用***对该装配图文件进行编译检查,生成Restful API的doc描述文档;
(1-7)在所述的的构件包中创建或修改对应的Restful服务API接口的Mock数据文件中的Mock data;
(1-8)点击部署装配文件,图形化服务装配平台把装配文件的Restful的API发布到服务运行平台变成Restful的服务,同时把相应Restful API的Doc和Mock文档发布到服务运行平台相应目录。
更佳地,所述的判断现有业务功能的方法是否已经发布过Restful服务API接口,具体为:
判断是否存在相关的doc描述文档。
更佳地,所述的构件包为包含一定功能逻辑的物理单元,所述的构件包包括实现业务功能的所有依赖资源。
更佳地,所述的步骤(1-5)包括以下步骤:
(1-5-1)从资源管理器中拖拽现有业务功能的实现到可视化编辑器中;
(1-5-2)对业务功能实现中的方法进行逐一检查,判断该方法的参数和返回值中是否包含有复杂数据类型,如果是,则继续步骤(1-5-3),否则继续步骤(1-6);
(1-5-3)判断传入参数或返回数据是否含有List、Map或Javabean复杂数据类型,如果是,则继续步骤(1-5-4),否则继续步骤(1-5-5);
(1-5-4)配置复杂数据类型中存放的元素的具体数据类型,继续步骤(1-6);
(1-5-5)弹出服务装配向导,在向导中输入构件的名称和Restful API接口描述信息。
更进一步地,所述的Restful API接口描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
更佳地,所述的步骤(1-6)包括如下步骤:
(1-6-1)对新生成的构件进行编译检查,判断是否存在编译错误,如果是,则继续步骤(1-6-2),否则继续步骤(1-6-3);
(1-6-2)提示用户进行修正,继续步骤(1-7);
(1-6-3)点击保存装配图文件,生成Restful API的doc描述文档。
更进一步地,所述的编译错误包括注解标签错误和接口描述错误。
更佳地,所述的步骤(1-8)包括如下步骤:
(1-8-1)建立一个新项目;
(1-8-2)右击新生成的构件包,弹出部署按钮;
(1-8-3)点击部署按钮,装配文件的Restful的API发布到服务运行平台变成Restful的服务。
更进一步地,所述的新项目包括该面向微服务架构应用***中实现Restful服务快速发布的服务运行Mock与Doc平台所依赖的框架。
更进一步地,所述的装配文件的Restful的API发布到服务运行平台变成Restful的服务,具体为:
把Doc与Mock文件克隆到部署所述的新项目的相应目录下,完成部署操作。
较佳地,所述的步骤(2)包括以下步骤:
(2-1)启动服务运行Mock与Doc平台的服务器;
(2-2)通过浏览器访问所述的服务器的地址,查看Restful的API接口描述信息;
(2-3)根据Restful的API接口描述信息,进行API的Mock测试。
更佳地,所述的描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
更进一步地,所述的请求类型包括GET、POST、PUT和DELETE。
更进一步地,所述的步骤(2-2)包括如下步骤:
(2-2-1)查询服务器启动端口信息和url链接地址;
(2-2-2)通过浏览器访问步骤所述的的url链接地址,查看所有发布过的RestfulAPI列表,通过所述的url查询对应的Restful API概要信息;
(2-2-3)点击所述的Restful API的概要信息,查看Restful API的描述信息。
更佳地,所述的步骤(2-3)包括如下步骤:
(2-3-1)根据Restful API的详细信息描述文字,根据Mock data填写对应的数据进行http调用,并返回相应的数据;
(2-3-2)判断返回结果是否正确,如果是,则结束步骤,否则继续步骤(2-3-4)
(2-3-4)根据提示信息,进行调试直到返回结果正确。
更进一步地,所述的判断返回结果,具体为:
将返回的数据格式和数据与Restful API定义的Schema进行比较,判断返回结果是否正确。
采用了该发明中的基于微服务架构实现Restful服务快速发布的方法,可以得出采用了该发明的业务应用***中实现微服务架构的Restful API快速发布方法,使得开发以及发布Restful变得异常简单,开发效率大大提高,同时通过图形化的开发以及发布方式,使得用户对Restful的细节不需要太多的了解,降低了学习和维护的成本,特别是通过对于底层进行包装,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成Restful API;运用本发明的方法可以快速、直观的将现有的业务功能发布为Restful服务,大大提高了应用***间的集成效率,大大提高了开发效率以及老***无成本变成微服务***,而且工作性能稳定可靠、适用范围较为广泛,便于企业业务架构向微服务架构转型。。
附图说明
图1为现有技术的***整体功能模块示意图。
图2为现有技术的微服务构架示意图。
图3为本发明的基于微服务架构实现Restful服务快速发布的方法的***整体功能示意图。
图4为本发明的基于微服务架构实现Restful服务快速发布的方法的方法中的***整体功能流程示意图。
图5为本发明的基于微服务架构实现Restful服务快速发布的方法的Restful API服务装配示意图。
图6为本发明的基于微服务架构实现Restful服务快速发布的方法的Restful服务Mock调用示意图。
图7为本发明的基于微服务架构实现Restful服务快速发布的方法的外部调用发布Restful API服务示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
在一种有效地实施方式中,该基于微服务架构实现Restful服务快速发布的方法,包括如下步骤:
(1)进行图形化服务装配处理;
(2)进行服务运行处理。
在一种较佳的实施方式中,所述的步骤(1)包括如下步骤:
(1-1)判断现有业务功能的方法是否已经发布过Restful服务API接口,如果是,则继续步骤(1-5),否则继续步骤(1-2);
(1-2)新建构件包;
(1-3)在该新建的构件包中创建装配图文件;
(1-4)根据用户的操作,将现有业务功能的实现拖拽到装配图中,生成一个或多个Restful的API接口和相关的doc描述文档,继续步骤(1-6);
(1-5)用户点击功能列表图示,修改一个或多个Restful的API接口以及相关的doc描述文档;
(1-6)保持装配图文件,且由面向微服务架构应用***对该装配图文件进行编译检查,生成Restful API的doc描述文档;
(1-7)在所述的的构件包中创建或修改对应的Restful服务API接口的Mock数据文件中的Mock data;
(1-8)点击部署装配文件,图形化服务装配平台把装配文件的Restful的API发布到服务运行平台变成Restful的服务,同时把相应Restful API的Doc和Mock文档发布到服务运行平台相应目录。
在一种更佳的实施方式中,所述的判断现有业务功能的方法是否已经发布过Restful服务API接口,具体为:
判断是否存在相关的doc描述文档。
在一种更佳的实施方式中,所述的构件包为包含一定功能逻辑的物理单元,所述的构件包包括实现业务功能的所有依赖资源。
在一种更佳的实施方式中,所述的步骤(1-5)包括以下步骤:
(1-5-1)从资源管理器中拖拽现有业务功能的实现到可视化编辑器中;
(1-5-2)对业务功能实现中的方法进行逐一检查,判断该方法的参数和返回值中是否包含有复杂数据类型,如果是,则继续步骤(1-5-3),否则继续步骤(1-6);
(1-5-3)判断传入参数或返回数据是否含有List、Map或Javabean复杂数据类型,如果是,则继续步骤(1-5-4),否则继续步骤(1-5-5);
(1-5-4)配置复杂数据类型中存放的元素的具体数据类型,继续步骤(1-6);
(1-5-5)弹出服务装配向导,在向导中输入构件的名称和Restful API接口描述信息。
在一种更进一步的实施方式中,所述的Restful API接口描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
在一种更佳的实施方式中,所述的步骤(1-6)包括如下步骤:
(1-6-1)对新生成的构件进行编译检查,判断是否存在编译错误,如果是,则继续步骤(1-6-2),否则继续步骤(1-6-3);
(1-6-2)提示用户进行修正,继续步骤(1-7);
(1-6-3)点击保存装配图文件,生成Restful API的doc描述文档。
在一种更进一步的实施方式中,所述的编译错误包括注解标签错误和接口描述错误。
在一种更佳的实施方式中,所述的步骤(1-8)包括如下步骤:
(1-8-1)建立一个新项目;
(1-8-2)右击新生成的构件包,弹出部署按钮;
(1-8-3)点击部署按钮,装配文件的Restful的API发布到服务运行平台变成Restful的服务。
在一种更进一步的实施方式中,所述的新项目包括该面向微服务架构应用***中实现Restful服务快速发布的服务运行Mock与Doc平台所依赖的框架。
在一种更进一步的实施方式中,所述的装配文件的Restful的API发布到服务运行平台变成Restful的服务,具体为:
把Doc与Mock文件克隆到部署所述的新项目的相应目录下,完成部署操作。
在一种较佳的实施方式中,所述的步骤(2)包括以下步骤:
(2-1)启动服务运行Mock与Doc平台的服务器;
(2-2)通过浏览器访问所述的服务器的地址,查看Restful的API接口描述信息;
(2-3)根据Restful的API接口描述信息,进行API的Mock测试。
在一种更佳的实施方式中,所述的描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
在一种更进一步的实施方式中,所述的请求类型包括GET、POST、PUT和DELETE。
在一种更进一步的实施方式中,所述的步骤(2-2)包括如下步骤:
(2-2-1)查询服务器启动端口信息和url链接地址;
(2-2-2)通过浏览器访问步骤所述的的url链接地址,查看所有发布过的RestfulAPI列表,通过所述的url查询对应的Restful API概要信息;
(2-2-3)点击所述的Restful API的概要信息,查看Restful API的描述信息。
在一种更佳的实施方式中,所述的步骤(2-3)包括如下步骤:
(2-3-1)根据Restful API的详细信息描述文字,根据Mock data填写对应的数据进行http调用,并返回相应的数据;
(2-3-2)判断返回结果是否正确,如果是,则结束步骤,否则继续步骤(2-3-4)
(2-3-4)根据提示信息,进行调试直到返回结果正确。
在一种更进一步的实施方式中,所述的判断返回结果,具体为:
将返回的数据格式和数据与Restful API定义的Schema进行比较,判断返回结果是否正确。
在微服务环境下,把一切都看成资源,而Restful是当下最流行的架构风格。由于轻量级以及通过HTTP直接传输数据的特性,Web服务的Restful方法已经成为最常见的替代方法。可以使用各种语言(比如Java程序、Perl、Ruby、Python、PHP和Java Script[包括Ajax])实现客户端。Restful Web服务通常可以通过自动客户端或代表用户的应用程序访问。但是,原来已经存在的Javabean因为没有使用Restful框架,无法进行Restful API的发布,企业面临这个问题往往只能把原来的***进行重新开发,面临成本和技术的困难。
我们提供一种图形化技术,对于底层进行包装,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成Restful API。该技术可极大提高微服务***之间的集成效率,让业务逻辑可以快速、直观的发布为Restful服务,大大提高了开发效率以及老***无成本变成微服务***,便于企业业务架构向微服务架构转型,普元EOS产品的Restful服务发布组件正是基于该技术实现。
JSON(Java Script Object Notation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、Java Script、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,同时提升网络传输速率,正使由于JSON存在的特性与Restful能够进行很好的结合,所以本次实施案例选择JSON格式。
在实际使用当中,请参阅图3至图7所示,该面向微服务架构应用***中实现Restful服务快速发布的方法,包括图形化服务装配平台和服务运行Mock与Doc平台。其中图形化的服务装配平台包括图形化装配,编译检查和快速创建一个新的构件(包括对外Restful API接口以及实现);服务运行Mock与Doc平台包括服务运行平台服务器,构件的Restful API的Doc文件和构件的Restful API的Mock文件,请参考图3***整体功能模块示意图所示。
该面向微服务架构应用***中实现Restful服务快速发布的方法中的构件包是指包含一定功能逻辑的物理单元,且每个构件包作为一个最小的部署单元部署到面向服务的架构运行***环境中,构件包下包含实现业务功能的所有依赖资源。
所述的图形化装配Restful服务以及服务Doc与Mock运行如图4整体功能流程图所示,包括以下步骤:
(1)判断业务功能是否存在Restful的Doc描述文件;
(2)如果步骤(1)描述Doc文件不存在,则新建的构件包,新建装配图文件;
(3)拖拽现有业务功能的实现到装配图中,将在装配图中生成一个构件。
(4)为生成的构件添加一个或多个服务,并指定服务的接口描述,然后进入步骤(6);
(5)如果步骤(1)描述Doc文件不存在,则修改构件上存在对应的Restful服务相关信息;
(6)保存装配图文件,***会对装配图文件进行编译检查,并且生成对应的Restful APIDoc文件;
(7)创建或者修改对应的Restful服务API接口的Mock数据文件中的Mock data;
(8)点击部署,把构件下Restful API的Doc和Mock文件克隆到新增项目中;
(9)启动新建项目所在的服务器;
(10)通过浏览器访问项目地址,通过里面的模块查看Restful API的描述信息;
(11)通过浏览器访问项目地址,通过里面的模块进行Restful API的Mock测试,验证其正确性。
完成服务装配后的服务装配示意图如图5所示。
所示服务Mock运行的过程如图6所示,包括以下步骤:
(1)启动新建项目所在的服务器;
(2)通过浏览器访问项目地址,可以查看到Restful API的服务列表;
(3)根据url查询到新发布的Restful API,通过里面的模块进行Restful API的Mock测试,验证其正确性(返回的JSON格式与Restful API的schema比较)。
所示外部调用发布的Restful API调用请求过程如图7所示,包括以下步骤:
(1)客户端发起http的Restful调用请求;
(2)根据url进行匹配,找到服务端对应的Restful API接口;
(3)由接口找到对应的实现类;
(4)实现类会调到业务***逻辑功能代码,并且返回业务功能数据;
(5)最终有Restful构件服务返回JSON格式的数据给客户端。
经过以上步骤,开发和发布Restful API功能全部完成,从中可以得出采用了该发明的业务应用***中实现微服务架构的Restful API快速发布方法,使得开发以及发布Restful变得异常简单,开发效率大大提高,同时通过图形化的开发以及发布方式,使得用户对Restful的细节不需要太多的了解,降低了学习和维护的成本,特别是通过对于底层进行包装,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成RestfulAPI;运用本发明的方法可以快速、直观的将现有的业务功能发布为Restful服务,大大提高了应用***间的集成效率,大大提高了开发效率以及老***无成本变成微服务***,而且工作性能稳定可靠、适用范围较为广泛,便于企业业务架构向微服务架构转型。
采用了该发明中的基于微服务架构实现Restful服务快速发布的方法,由于其中在开发期提供一个可视化的Restful API服务装配工具,直观形象、快捷方便的生成Restful API装配文件,特别是通过对于底层进行包装,用户可以通过图形化技术简单方便把任何一个普通的Javabean发布成Restful API;同时,通过服务运行Mock与Doc平台,可以通过Doc查询API的文档以及每个Restful API信息(包含url,描述文字,请求类型,传入参数,返回格式,返回JSON等信息),可以通过Mock测试每个Restful API服务,从而达到动态、快速发布Restful服务以及Restful API服务文档说明(Doc)与测试(Mock)的能力,极大的提高了微服务应用***之间的集成效率,让业务逻辑可以快速、直观的发布为Restful服务,从而使其更加直观、简单和高效,性能稳定可靠,降低了开发维护的成本;同时运用本发明的方法可以快速、直观的将现有的业务功能发布为Restful服务,大大提高了应用***间的集成效率,大大提高了开发效率以及老***无成本变成微服务***,而且工作性能稳定可靠、适用范围较为广泛,为业务***微服务化软件技术的进一步发展奠定了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (17)

1.一种基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的方法包括如下步骤:
(1)进行图形化服务装配处理;
(2)进行服务运行处理。
2.根据权利要求1所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(1)包括如下步骤:
(1-1)判断现有业务功能的方法是否已经发布过Restful服务API接口,如果是,则继续步骤(1-5),否则继续步骤(1-2);
(1-2)新建构件包;
(1-3)在该新建的构件包中创建装配图文件;
(1-4)根据用户的操作,将现有业务功能的实现拖拽到装配图中,生成一个或多个Restful的API接口和相关的doc描述文档,继续步骤(1-6);
(1-5)用户点击功能列表图示,修改一个或多个Restful的API接口以及相关的doc描述文档;
(1-6)保持装配图文件,且由面向微服务架构应用***对该装配图文件进行编译检查,生成Restful API的doc描述文档;
(1-7)在所述的的构件包中创建或修改对应的Restful服务API接口的Mock数据文件中的Mock data;
(1-8)点击部署装配文件,图形化服务装配平台把装配文件的Restful的API发布到服务运行平台变成Restful的服务,同时把相应Restful API的Doc和Mock文档发布到服务运行平台相应目录。
3.根据权利要求2所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的判断现有业务功能的方法是否已经发布过Restful服务API接口,具体为:
判断是否存在相关的doc描述文档。
4.根据权利要求2所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的构件包为包含一定功能逻辑的物理单元,所述的构件包包括实现业务功能的所有依赖资源。
5.根据权利要求2所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(1-5)包括以下步骤:
(1-5-1)从资源管理器中拖拽现有业务功能的实现到可视化编辑器中;
(1-5-2)对业务功能实现中的方法进行逐一检查,判断该方法的参数和返回值中是否包含有复杂数据类型,如果是,则继续步骤(1-5-3),否则继续步骤(1-6);
(1-5-3)判断传入参数或返回数据是否含有List、Map或Javabean复杂数据类型,如果是,则继续步骤(1-5-4),否则继续步骤(1-5-5);
(1-5-4)配置复杂数据类型中存放的元素的具体数据类型,继续步骤(1-6);
(1-5-5)弹出服务装配向导,在向导中输入构件的名称和Restful API接口描述信息。
6.根据权利要求5所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的Restful API接口描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
7.根据权利要求2所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(1-6)包括如下步骤:
(1-6-1)对新生成的构件进行编译检查,判断是否存在编译错误,如果是,则继续步骤(1-6-2),否则继续步骤(1-6-3);
(1-6-2)提示用户进行修正,继续步骤(1-7);
(1-6-3)点击保存装配图文件,生成Restful API的doc描述文档。
8.根据权利要求7所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的编译错误包括注解标签错误和接口描述错误。
9.根据权利要求2所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(1-8)包括如下步骤:
(1-8-1)建立一个新项目;
(1-8-2)右击新生成的构件包,弹出部署按钮;
(1-8-3)点击部署按钮,装配文件的Restful的API发布到服务运行平台变成Restful的服务。
10.根据权利要求9所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的新项目包括该面向微服务架构应用***中实现Restful服务快速发布的服务运行Mock与Doc平台所依赖的框架。
11.根据权利要求9所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的装配文件的Restful的API发布到服务运行平台变成Restful的服务,具体为:
把Doc与Mock文件克隆到部署所述的新项目的相应目录下,完成部署操作。
12.根据权利要求1所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(2)包括以下步骤:
(2-1)启动服务运行Mock与Doc平台的服务器;
(2-2)通过浏览器访问所述的服务器的地址,查看Restful的API接口描述信息;
(2-3)根据Restful的API接口描述信息,进行API的Mock测试。
13.根据权利要求12所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的描述信息包括url、描述文字、请求类型、传入参数、返回格式和返回JSON。
14.根据权利要求13所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的请求类型包括GET、POST、PUT和DELETE。
15.根据权利要求13所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(2-2)包括如下步骤:
(2-2-1)查询服务器启动端口信息和url链接地址;
(2-2-2)通过浏览器访问步骤所述的的url链接地址,查看所有发布过的Restful API列表,通过所述的url查询对应的Restful API概要信息;
(2-2-3)点击所述的Restful API的概要信息,查看Restful API的描述信息。
16.根据权利要求12所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的步骤(2-3)包括如下步骤:
(2-3-1)根据Restful API的详细信息描述文字,根据Mock data填写对应的数据进行http调用,并返回相应的数据;
(2-3-2)判断返回结果是否正确,如果是,则结束步骤,否则继续步骤(2-3-4)
(2-3-4)根据提示信息,进行调试直到返回结果正确。
17.根据权利要求16所述的基于微服务架构实现Restful服务快速发布的方法,其特征在于,所述的判断返回结果,具体为:
将返回的数据格式和数据与Restful API定义的Schema进行比较,判断返回结果是否正确。
CN201610571562.0A 2016-07-20 2016-07-20 基于微服务架构实现Restful服务快速发布的方法 Active CN106254423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610571562.0A CN106254423B (zh) 2016-07-20 2016-07-20 基于微服务架构实现Restful服务快速发布的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610571562.0A CN106254423B (zh) 2016-07-20 2016-07-20 基于微服务架构实现Restful服务快速发布的方法

Publications (2)

Publication Number Publication Date
CN106254423A true CN106254423A (zh) 2016-12-21
CN106254423B CN106254423B (zh) 2019-06-28

Family

ID=57614019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610571562.0A Active CN106254423B (zh) 2016-07-20 2016-07-20 基于微服务架构实现Restful服务快速发布的方法

Country Status (1)

Country Link
CN (1) CN106254423B (zh)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104846A (zh) * 2017-06-02 2017-08-29 北京北信源软件股份有限公司 一种实现资源配置的方法、装置及资源配置中心
CN107341008A (zh) * 2017-06-22 2017-11-10 上海艾融软件股份有限公司 微服务灰度发布方法
CN107730125A (zh) * 2017-10-20 2018-02-23 南方电网科学研究院有限责任公司 实验室管理***
CN108011768A (zh) * 2017-12-26 2018-05-08 杭州电子科技大学 一种aop拦截式HBase数据存储微服务架构构建方法
CN108337106A (zh) * 2017-12-18 2018-07-27 海尔优家智能科技(北京)有限公司 物联网微服务***架构的构建方法、平台及计算机设备
CN108388519A (zh) * 2018-03-19 2018-08-10 车智互联(北京)科技有限公司 基于SpringBoot服务的Mock测试方法
CN108563426A (zh) * 2018-03-06 2018-09-21 北京酷我科技有限公司 一种iOS请求模拟策略
CN108600255A (zh) * 2018-05-07 2018-09-28 平安普惠企业管理有限公司 Mock服务管理方法、装置、计算机设备以及存储介质
CN109032567A (zh) * 2018-07-06 2018-12-18 航天星图科技(北京)有限公司 一种微服务环境中的服务开发和运行方法及其模型
CN109522094A (zh) * 2018-11-20 2019-03-26 郑州云海信息技术有限公司 一种软件演示方法、***和计算机设备
CN109618119A (zh) * 2018-10-31 2019-04-12 视联动力信息技术股份有限公司 业务处理方法和装置
CN109660626A (zh) * 2018-12-29 2019-04-19 天翼电子商务有限公司 一种负载均衡方法、***及负载均衡监控端
CN109741176A (zh) * 2018-12-28 2019-05-10 四川新网银行股份有限公司 一种基于互联网金融场景下的分布式业务调度***
CN109783071A (zh) * 2019-01-21 2019-05-21 浪潮软件集团有限公司 基于Drools规则引擎的政务规则设计方法及***
CN109918151A (zh) * 2019-03-14 2019-06-21 佳都新太科技股份有限公司 工作流实现方法、装置、设备及存储介质
CN110287438A (zh) * 2019-06-19 2019-09-27 天津大学 一种基于微服务架构的跨界服务融合方法
CN110347421A (zh) * 2019-05-31 2019-10-18 上海芯与网络科技有限公司 一种基于微服务的图形化接口配置引擎
CN110764752A (zh) * 2019-11-08 2020-02-07 普元信息技术股份有限公司 基于微服务架构实现Restful服务图形化服务编排的***及其方法
WO2020088087A1 (zh) * 2018-11-02 2020-05-07 易保网络技术(上海)有限公司 用于应用程序接口api测试的方法和设备
CN111181805A (zh) * 2019-12-25 2020-05-19 航天信息股份有限公司 一种基于测试用例的微服务测试挡板生成方法及***
CN111198678A (zh) * 2018-11-19 2020-05-26 贵州白山云科技股份有限公司 一种生成GraphQL前端操作接口的方法及装置
CN111221591A (zh) * 2019-12-27 2020-06-02 中国建设银行股份有限公司 探测基于Kubernetes部署的微服务的可用性的方法、***及介质
CN111309454A (zh) * 2020-03-16 2020-06-19 普元信息技术股份有限公司 微服务架构下实现服务编排数据上下文共享与管理控制的方法及其***
CN112256351A (zh) * 2020-10-26 2021-01-22 卫宁健康科技集团股份有限公司 Feign组件的实现方法、微服务调用方法及装置
CN112417699A (zh) * 2020-11-26 2021-02-26 中国科学院电子学研究所苏州研究院 一种面向服务能力的结构化描述校验***及其方法
CN112783551A (zh) * 2021-01-21 2021-05-11 中信银行股份有限公司 微服务框架的接口文档生成方法、电子设备及存储介质
CN112799918A (zh) * 2021-04-12 2021-05-14 北京三维天地科技股份有限公司 基于轻量级微服务架构的可视化企业服务总线的管理***
CN112948666A (zh) * 2021-01-28 2021-06-11 浪潮云信息技术股份公司 一种将库表数据发布为api服务的实现方法
CN113253980A (zh) * 2021-03-05 2021-08-13 吉林烟草工业有限责任公司 烟草物流平台设计方法、***、装置及存储介质
CN114116730A (zh) * 2022-01-21 2022-03-01 深圳微迅信息科技有限公司 一种接口管理方法、装置、设备及存储介质
CN114648317A (zh) * 2022-05-24 2022-06-21 智昌科技集团股份有限公司 基于微服务架构的产品供应调控***及其方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2234368A1 (en) * 2008-01-11 2010-09-29 ZTE Corporation Content delivery device and system, content-on-demand method and network architecture
CN101957758A (zh) * 2010-10-14 2011-01-26 上海普元信息技术股份有限公司 面向服务的架构应用***中实现Web Service快速发布的方法
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2234368A1 (en) * 2008-01-11 2010-09-29 ZTE Corporation Content delivery device and system, content-on-demand method and network architecture
CN101957758A (zh) * 2010-10-14 2011-01-26 上海普元信息技术股份有限公司 面向服务的架构应用***中实现Web Service快速发布的方法
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及***

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104846A (zh) * 2017-06-02 2017-08-29 北京北信源软件股份有限公司 一种实现资源配置的方法、装置及资源配置中心
CN107341008A (zh) * 2017-06-22 2017-11-10 上海艾融软件股份有限公司 微服务灰度发布方法
CN107730125A (zh) * 2017-10-20 2018-02-23 南方电网科学研究院有限责任公司 实验室管理***
CN108337106B (zh) * 2017-12-18 2021-07-16 海尔优家智能科技(北京)有限公司 物联网微服务***架构的构建方法、平台及计算机设备
CN108337106A (zh) * 2017-12-18 2018-07-27 海尔优家智能科技(北京)有限公司 物联网微服务***架构的构建方法、平台及计算机设备
CN108011768A (zh) * 2017-12-26 2018-05-08 杭州电子科技大学 一种aop拦截式HBase数据存储微服务架构构建方法
CN108011768B (zh) * 2017-12-26 2020-09-18 杭州电子科技大学 一种aop拦截式HBase数据存储微服务架构构建方法
CN108563426A (zh) * 2018-03-06 2018-09-21 北京酷我科技有限公司 一种iOS请求模拟策略
CN108563426B (zh) * 2018-03-06 2021-06-11 北京酷我科技有限公司 一种iOS请求模拟方法
CN108388519A (zh) * 2018-03-19 2018-08-10 车智互联(北京)科技有限公司 基于SpringBoot服务的Mock测试方法
CN108600255B (zh) * 2018-05-07 2022-02-01 平安普惠企业管理有限公司 Mock服务管理方法、装置、计算机设备以及存储介质
CN108600255A (zh) * 2018-05-07 2018-09-28 平安普惠企业管理有限公司 Mock服务管理方法、装置、计算机设备以及存储介质
CN109032567A (zh) * 2018-07-06 2018-12-18 航天星图科技(北京)有限公司 一种微服务环境中的服务开发和运行方法及其模型
CN109032567B (zh) * 2018-07-06 2021-08-10 中科星图股份有限公司 一种微服务环境中的服务开发和运行方法及其***
CN109618119A (zh) * 2018-10-31 2019-04-12 视联动力信息技术股份有限公司 业务处理方法和装置
WO2020088087A1 (zh) * 2018-11-02 2020-05-07 易保网络技术(上海)有限公司 用于应用程序接口api测试的方法和设备
CN111198678A (zh) * 2018-11-19 2020-05-26 贵州白山云科技股份有限公司 一种生成GraphQL前端操作接口的方法及装置
CN109522094A (zh) * 2018-11-20 2019-03-26 郑州云海信息技术有限公司 一种软件演示方法、***和计算机设备
CN109741176B (zh) * 2018-12-28 2021-04-27 四川新网银行股份有限公司 一种基于互联网金融场景下的分布式业务调度***
CN109741176A (zh) * 2018-12-28 2019-05-10 四川新网银行股份有限公司 一种基于互联网金融场景下的分布式业务调度***
CN109660626A (zh) * 2018-12-29 2019-04-19 天翼电子商务有限公司 一种负载均衡方法、***及负载均衡监控端
CN109783071A (zh) * 2019-01-21 2019-05-21 浪潮软件集团有限公司 基于Drools规则引擎的政务规则设计方法及***
CN109783071B (zh) * 2019-01-21 2022-03-29 浪潮软件股份有限公司 基于Drools规则引擎的政务规则设计方法及***
CN109918151A (zh) * 2019-03-14 2019-06-21 佳都新太科技股份有限公司 工作流实现方法、装置、设备及存储介质
CN110347421A (zh) * 2019-05-31 2019-10-18 上海芯与网络科技有限公司 一种基于微服务的图形化接口配置引擎
CN110287438A (zh) * 2019-06-19 2019-09-27 天津大学 一种基于微服务架构的跨界服务融合方法
CN110764752B (zh) * 2019-11-08 2023-06-16 普元信息技术股份有限公司 实现Restful服务图形化服务编排的***及其方法
CN110764752A (zh) * 2019-11-08 2020-02-07 普元信息技术股份有限公司 基于微服务架构实现Restful服务图形化服务编排的***及其方法
CN111181805B (zh) * 2019-12-25 2022-04-29 航天信息股份有限公司 一种基于测试用例的微服务测试挡板生成方法及***
CN111181805A (zh) * 2019-12-25 2020-05-19 航天信息股份有限公司 一种基于测试用例的微服务测试挡板生成方法及***
CN111221591A (zh) * 2019-12-27 2020-06-02 中国建设银行股份有限公司 探测基于Kubernetes部署的微服务的可用性的方法、***及介质
CN111309454A (zh) * 2020-03-16 2020-06-19 普元信息技术股份有限公司 微服务架构下实现服务编排数据上下文共享与管理控制的方法及其***
CN111309454B (zh) * 2020-03-16 2024-02-20 普元信息技术股份有限公司 微服务架构下实现服务编排数据上下文共享与管理控制的方法及其***
CN112256351A (zh) * 2020-10-26 2021-01-22 卫宁健康科技集团股份有限公司 Feign组件的实现方法、微服务调用方法及装置
CN112256351B (zh) * 2020-10-26 2023-11-17 卫宁健康科技集团股份有限公司 Feign组件的实现方法、微服务调用方法及装置
CN112417699A (zh) * 2020-11-26 2021-02-26 中国科学院电子学研究所苏州研究院 一种面向服务能力的结构化描述校验***及其方法
CN112783551A (zh) * 2021-01-21 2021-05-11 中信银行股份有限公司 微服务框架的接口文档生成方法、电子设备及存储介质
CN112948666A (zh) * 2021-01-28 2021-06-11 浪潮云信息技术股份公司 一种将库表数据发布为api服务的实现方法
CN113253980A (zh) * 2021-03-05 2021-08-13 吉林烟草工业有限责任公司 烟草物流平台设计方法、***、装置及存储介质
CN112799918B (zh) * 2021-04-12 2021-08-24 北京三维天地科技股份有限公司 基于轻量级微服务架构的可视化企业服务总线的管理***
CN112799918A (zh) * 2021-04-12 2021-05-14 北京三维天地科技股份有限公司 基于轻量级微服务架构的可视化企业服务总线的管理***
CN114116730B (zh) * 2022-01-21 2022-04-12 深圳微迅信息科技有限公司 一种接口管理方法、装置、设备及存储介质
CN114116730A (zh) * 2022-01-21 2022-03-01 深圳微迅信息科技有限公司 一种接口管理方法、装置、设备及存储介质
CN114648317B (zh) * 2022-05-24 2022-09-13 智昌科技集团股份有限公司 基于微服务架构的产品供应调控***及其方法
CN114648317A (zh) * 2022-05-24 2022-06-21 智昌科技集团股份有限公司 基于微服务架构的产品供应调控***及其方法

Also Published As

Publication number Publication date
CN106254423B (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN106254423B (zh) 基于微服务架构实现Restful服务快速发布的方法
US20230147358A1 (en) Composition of pattern-driven reactions in real-time dataflow programming
US7676786B2 (en) System and method and apparatus for using UML tools for defining web service bound component applications
US8443035B2 (en) System and method for collaboration using web browsers
Webber et al. REST in practice: Hypermedia and systems architecture
US8219970B2 (en) XML push and remote execution of a wireless applications
Indrasiri et al. gRPC: up and running: building cloud native applications with Go and Java for Docker and Kubernetes
US9721246B2 (en) Synchronization patterns for mobile applications
CA2498540C (en) System and method for building wireless applications with intelligent mapping between user interface and data components
JP5265549B2 (ja) 連結ディスカバリ・ウェブ・サービス
EP1901181A1 (en) Discovery Web Service
US10007532B1 (en) Data infrastructure for cross-platform cross-device API inter-connectivity
WO2002019131A1 (en) System and method for collaboration using web browsers
WO2014026169A2 (en) Application development system and method for object models and datagraphs in client-side and server-side applications
JP2011086291A (ja) システムランドスケープ対応アプリケーション間通信インフラストラクチャ
US20130275623A1 (en) Deployment of web application archives as a preprocessing step for provisioning
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
CN113918637A (zh) 一种基于bpmn2.0规范的流程引擎平台创建方法及***
US8972487B2 (en) Automated framework for testing enterprise services consumer technologies
US10324772B2 (en) Method and system for data instance-based automatic message map construction
Chis et al. BPMN extension for multi-protocol DataOrchestration
Yaici et al. A model-based approach for the generation of adaptive user interfaces on portable devices
Pohl et al. Developing Enterprise Services for SAP
AU2008202421A1 (en) System and method for building wireless applications with intelligent mapping between user interface and data components

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant