CN106663002B - Rest服务源代码生成 - Google Patents

Rest服务源代码生成 Download PDF

Info

Publication number
CN106663002B
CN106663002B CN201480080025.5A CN201480080025A CN106663002B CN 106663002 B CN106663002 B CN 106663002B CN 201480080025 A CN201480080025 A CN 201480080025A CN 106663002 B CN106663002 B CN 106663002B
Authority
CN
China
Prior art keywords
service
rest
service interface
class
computer code
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.)
Active
Application number
CN201480080025.5A
Other languages
English (en)
Other versions
CN106663002A (zh
Inventor
C·尼尔多什
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN106663002A publication Critical patent/CN106663002A/zh
Application granted granted Critical
Publication of CN106663002B publication Critical patent/CN106663002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

用于便于诸如代表性状态传输(REST)web服务之类的web服务的开发的系统和方法。示例方法包括确定服务接口的一个或多个特性,以及将得到的信息并入文件中;以及基于文件自动生成计算机代码以实现REST服务。在更具体的实施例中,文件是XML文件,XML文件可以从应用到服务接口的REST分析工具输出。web服务可以利用或包括经由用于实现生成步骤的代码生成器已映射到REST服务的一个或多个资源。

Description

REST服务源代码生成
对相关申请的交叉引用
本申请涉及以下申请,于2012年5月17日提交的、名称为“METHOD FOR REWRITINGDYNAMICALLY GENERATED UNIFORM RESOURCE LOCATORS IN PROXIED HYPER TEXT MARKUPLANGUAGE CONTENT(用于重写代理的超文本标记语言内容中的动态生成的统一资源定位符的方法)”、序号为13/474,709(代理人案卷号ORACP0062)的美国专利申请,该申请在此通过引用并入,如同在本说明书中完全阐述一样。
背景技术
本申请涉及软件,并且更具体地涉及用于便于开发和实现诸如web服务之类的可远程访问软件的系统和方法。
可远程访问软件在各种要求高的应用中被采用,这些要求高的应用包括对于诸如移动设备之类的分布式客户机来说可访问的企业基于云的软件。在许多企业计算环境中,不同软件系统必须诸如经由web服务或经由用于经由因特网(Internet)在软件系统之间传送数据的其他机制来交换数据。请求数据的软件系统被称为服务请求者,而处理请求并且提供数据的软件系统被称为服务提供者。
用于实现这样的可远程访问软件的用于便于开发web服务、应用编程接口(API)等的软件开发方法和工具通常需要实现计算机代码的快速开发和安装的高效机制。
常规地,诸如代表性状态传输(REST)服务之类的web服务的开发需要对服务接口细节的分析,该服务接口细节即客户机设备和远程内容服务器之间的通信接口的细节。这样的分析通常被手动执行,即经由软件开发工具被手工编码。然而,可以包括打开接口对象和文件;按需在视觉上检查和编辑服务组件;以及相应地编辑服务代码的手动方法可能是过于费时和易于出错的。
一般而言,使用现有工具经由API接口对REST服务的开发可能是过于劳动密集的、成本高的以及易于出错的。
发明内容
示例方法便于诸如代表性状态传输(REST)web服务之类的web服务的开发。示例方法包括确定诸如用于REST服务的统一服务接口之类的服务接口的一个或多个特性;接收具有与前述确定相关联的信息的文件;以及基于文件自动生成计算机代码以实现REST服务。
在更具体的实施例中,服务接口的特性包括XML文件中维护的信息。XML文件可以表示应用到服务接口的REST分析工具的输出。web服务可以利用或包括经由自动生成的步骤已映射到REST服务的一个或多个资源。
代码生成器可以被用于自动生成包括REST服务的计算机代码。代码生成器适合于创建包含包括所生成的计算机代码的一个或多个编程语言类的转储(dump)文件。名称注释修饰符便于处理由代码生成器接收的包中指定的类。包中的每个类的每个方法被处理以响应于此产生一个或多个更新的方法,该一个或多个更新的方法已根据服务接口细节(即信息)来更新。
在具体实施例中,该一个或多个编程语言类适合于经由诸如Jersey REST容器之类的REST容器被部署在Java(R)平台上。输出转储文件包括用于所有生成的Java REST资源文件的计算机代码。代码生成器采用经由Java归档(archive)维护的计算机代码。
示例方法还可以包括接收触发计算机代码(即代码生成器)的运行的命令。命令可以是GET超文本传送协议(HTTP)方法、POST HTTP方法或其他方法。代码生成器适合于自动导入所有服务依赖关系以用于合并到转储文件中。
因此,本文讨论的某些实施例向开发者提供系统引导以便于编写REST服务并且还提供用于快速生成REST服务或将其他类型的web服务转换为REST服务的代码生成工具。尽管某些具体实施例特别适合于生成Jersey REST服务,但是类似方法可以被扩展到其他平台,诸如采用Apache CXF或RestEasy的平台。
通过实现用于REST服务的自动代码生成,包括生成用于将现有web服务转换为REST服务的开销(overhead)代码,开发成本和人为错误可以被降低。
通过参考说明书的剩余部分和附图可以实现对本文公开的特定实施例的本质和优点的进一步理解。
附图说明
图1是示出了实现代表性状态传输(REST)服务的自动生成的第一示例系统的示图。
图2是表征(characterize)图1的代码生成器的示例类的框图。
图3是经由图1的代码生成器实现并且适合于处理经由可扩展标记语言(XML)提供并且表征服务接口的包的示例过程的流程图。
图4是适合于用于与图1-3的实施例一起使用的示例方法的流程图。
具体实施方式
出于本讨论的目的,企业可以是人的任何组织,诸如商业机构(business)、大学、政府、军队等等。本文可互换地采用术语“组织”和“企业”。组织的人员(即企业人员)可以包括与组织相关联的任何人,诸如雇员、承包商、董事会成员、客户联系人等等。
企业计算环境可以是被用于商业机构或组织的任何计算环境。计算环境可以是被用于执行包括计算机处理的一个或多个任务的计算资源的任何集合。示例企业计算环境包括跨网络分布的各种计算资源并且还可以包括内联网web服务器上的私有和共享内容、数据库、本地硬盘或文件服务器上的文件、邮件系统、文档管理系统、门户(portal)等等。
出于本讨论的目的,web资源可以是可以被命名并且经由计算机网络寻址的任何事物,包括计算语言类(例如,Java类)、对象、web服务等等。一般而言,诸如URL之类的经由统一资源识别符(URI)或web地址引用的任何事物可以被认为是web资源。URI可以是指定网络地址的任何字符串。
企业软件可以是适合于便于实现诸如管理企业资源、管理客户关系等之类的任何企业相关过程或操作的计算机代码的任何集合。本文可互换地采用术语“企业软件”和“企业应用”。然而,企业应用可以包括诸如用户界面(UI)软件模块或组件之类的一个或多个企业软件模块或组件。
企业数据可以是关于组织或商业机构的任何信息,包括关于客户、约会(appointment)、会议、机会、客户交互、项目、任务、资源、订单(order)、企业人员等等的信息。企业数据的示例包括工作相关笔记、约会数据、客户联系信息、工作订单的描述、资产描述、照片、联系信息、日历信息、企业层级信息(例如,公司组织图表信息)等等。
为了清楚起见,诸如硬盘驱动器、处理器、操作系统、电源、因特网服务提供商(ISP)、类加载器、字节码编译器等之类的某些公知组件已从附图中省略。然而,可以获取本教导的本领域技术人员将知道实现哪些组件以及怎样实现它们以满足给定实施方式的需要。
图1是示出了实现代表性状态传输(REST)服务的自动生成的第一示例系统10的示图。在该示例实施例中,系统10适合于便于参照服务接口22经由代码生成器实用程序(utility)应用编程接口(API)16(还被简称为代码生成器)将服务项目28的web服务转换为REST服务30。
注意到系统10的各个模块可以以与所示出的不同的方式被分组、安排、耦接和/或分布,而不脱离本教导的范围。例如,在替代分组中,代码生成器16可以被认为是开发系统20的一部分,而Jersey REST容器18和伴随的服务30可以被认为是Java运行时系统或平台24的一部分。类似地,在某些实施方式中,模块之间的互连可以不同于所示出的互连。
第一示例系统10包括经由诸如REST服务30之类的一个或多个服务与一个或多个企业数据库32进行通信的REST客户机14。REST服务30包括部署就绪(deployment-ready)代码,该部署就绪代码可以经由Java运行时系统24运行并且适合于便于根据服务接口22访问经由企业数据库32维护的数据。
出于本讨论的目的,REST客户机可以是在支持REST服务的系统中操作或与支持REST服务的系统通信的任何客户机。类似地,REST服务器可以是适合于用于与REST架构风格一起使用或者与REST服务一起使用的任何服务器。客户机可以是适合于接收来自被称为服务器的另一计算机或系统的内容的任何计算机、系统或网络资源。服务器系统可以是一个或多个服务器的任何集合。
示例开发者系统和图形用户界面(GUI)20(还被简称为开发者系统)与代码生成器实用程序API 16和服务接口22通信。开发者系统20包括REST分析工具26,REST分析工具26包括适合于便于服务接口22的分析以及生成包含分析的结果的可扩展标记语言(XML)文件的计算机代码。
REST分析工具26还与服务项目28和代码生成器16通信。代码生成器16接收具有服务接口22的分析结果的XML文件,并且还可以接收关于服务项目28的服务项目信息,包括表征要被转换为REST服务30的web服务的类文件。代码生成器16接收来自开发者系统20的XML文件,然后运行过程以基于从开发者系统20接收的输入来自动生成REST服务30。
服务项目28可以包括用于尚未被配置为作为REST服务操作的服务的计算机代码。该计算机代码可以表示被递送到代码生成器API16或者对于代码生成器API 16来说可访问以用于在根据对服务接口22的分析来生成REST服务30中使用的包的一部分。
代码生成器16适合于生成REST服务30,以使得服务可以访问(即,可以调用)经由服务接口22可用的所有必需的REST映射的服务。代码生成器16可以被实现为Java归档。
REST服务30经由Jersey REST容器18被存储,并且它表示用于包括REST服务30的编程语言类的转储位置。出于本讨论的目的,编程语言类可以是作为软件代码的一部分被采用并且可以封装数据和/或功能(例如,属性和/或方法)的任何计算对象。
在本示例实施例中,REST服务30表示根据Jersey RESTful Web服务框架实现的RESTful web服务。Jersey RESTful Web服务框架是便于根据与Java规范请求(JavaSpecification Requests,JSR)311和339一致的JAX-RS(用于RESTful Web服务的JavaAPI)API在Java中实现web服务的开源框架。互相通信的web服务的Jersey实现提供便于在诸如容器18之类的Java小服务程序(servlet)容器中实现RESTful web服务的库。
可以包括Java虚拟机(JVM)和包括Java API、类加载器、剖析器(profiler)等的相关联平台的Java运行时系统24适合于选择性地执行、解释或者(例如,经由即时(JIT)编译器)既执行又解释REST服务30的计算机代码。REST客户机14可以包括适合于调用(call)、援用(invoke)或以其他方式使用REST服务30以调用采用REST服务30的应用的浏览器、API和其他客户机侧软件。
例如,REST客户机14可以经由REST服务30和伴随的Java运行时系统24请求经由企业数据库32提供的数据和/或功能。REST客户机14(即,请求者)可以经由服务接口22向服务器系统12(即,提供者)发送请求消息。请求消息可以被寻址到经由Java运行时系统24运行的REST服务30。运行的REST服务30然后根据请求从企业数据库32检索数据以及促进采用服务接口22来向REST客户机14递送数据检索的结果。
总之,代码生成器实用程序API 16便于REST服务的自动创建。每个服务接口22被分析其特性,然后得到的分析数据被供应给代码生成器16以便于REST服务30的自动生成。如本文所讨论的基于服务接口细节的REST服务计算机代码的自动生成可以大大减少开发和部署REST服务30所需要的开发时间和错误。
采用开发者系统20的开发者可以手动创建表征服务接口22的XML文件和/或采用REST分析工具26。下文更全面地讨论示例XML文件。
在开发web服务时,服务项目28被保持在XML文件中指定的类路径中,以用于由代码生成器API 16和伴随的Java运行时系统24使用。开发者可以采用开发者系统20以诸如经由GET和/或POST超文本传送协议(HTTP)方法来调用或激活代码生成器16。
在方法调用中指定的(对应于REST服务30的位置的)转储位置将使所有Java REST资源文件被生成并且准备好被使用。所有服务依赖关系(例如,REST服务30对其他服务的依赖关系)被自动导入到REST服务30中或者以其他方式被考虑以使得REST服务30能够适当地工作。
注意到一般而言,诸如REST服务30之类的web服务可以由包括服务器侧和客户机侧应用的不同web应用调用或使用。例如,REST客户机14的API可以由REST客户机14采用,以请求来自服务器系统12的服务。服务器系统12可以包括可以与REST客户机14对接的其他web应用,而不脱离本教导的范围。
出于本讨论的目的,web应用可以是适合于由一个或多个客户机设备通过诸如因特网或内联网之类的网络访问的任何计算机代码,例如软件应用。web应用可以调用和/或实现一个或多个web服务。
web服务可以是响应于经由诸如万维网(World Wide Web)之类的网络从客户机发送到服务器的信号(例如,请求消息)经由服务器上运行的软件而激活或实现的任何软件功能或操作。实现web服务操作的软件还可以被称为web服务、软件服务或者在此被简称为服务。
一般而言,web应用可以经由诸如Java、JavaScript、Flash、Silverlight等之类的各种方法和伴随机制来实现。此外,某些web应用可以由执行若干过程的过程模板来定义,其中每个过程经由分开的web服务实现。
一般而言,软件服务提供可以由(可以跨网络分布的)不同应用或过程重复使用的功能(例如,能力),这些不同应用或过程经由例如经由中间件指定的并且与服务描述一致的预定接口来访问功能。
遵守REST架构风格的web服务被称为RESTful web服务。REST架构风格指定用于web服务的约束,包括与可以适合于便于可扩展性、可修改性、可重用性等的统一接口的兼容性。
REST架构风格要求客户机服务器架构,其中数据和功能被认为是资源。使用可以对应于网页中的链接的统一资源识别符(URI)来访问这些资源。使用定义良好的(well-defined)操作(例如,GET、POST等)和诸如HTTP之类的通信协议来作用于资源。因此,客户机和服务器使用标准化的接口和协议来交换资源的表示。
服务接口22表示用于包括REST客户机14和服务器系统12的网络资源之间的REST通信的统一接口。出于本讨论的目的,服务接口可以是便于包括web服务的网络资源之间的相互通信的任何机制。服务接口通常适合于实现和执行暴露的服务与软件应用和/或与服务通信的其他服务之间的合约(contract)。
在例如系统10的REST系统中,来自客户机(即,服务的请求者)的请求包含用于服务请求的信息。表征请求者和提供者(例如,客户机和服务器)之间的通信交互的会话状态可以被存储在客户机处。然而,会话状态可以由例如服务器系统12的服务器传送到另一服务。
客户机(例如,REST客户机14)向服务器系统12发出请求以转变到新的状态。每个应用状态的表示可以包括用于随后的客户机状态转变的链路(URI)。服务接口22便于应用、服务等的解耦,从而使得潜在地不同的应用和系统能够相互通信和相互操作。
图2是表征图1的代码生成器的示例类结构40的框图。经由图1的代码生成器16为REST web服务构建的类将一般与类40一致。然而,本领域技术人员将意识到特定类的细节可以不同并且可以具有不同数量和类型的属性,包括方法属性。
类40包括由计算环境(其可以包括各种库、协议规范等等)支持的类属性数据42和方法部分44的方法属性或组件54。
类数据42(即,属性)包括路径的识别(@path)46、修饰符48、服务名称50和对包52的引用。方法部分44的方法组件包括表征路径方法56(@path)、接收(accepts)方法58(@accepts)、GET方法60(@GET)、查询参数方法62(@QueryParam)、输入变量方法64、输出变量方法66、初始化方法68和调用方法70的属性。
参照图1和2,代码生成器类40的方法属性64和一般类属性42适合于由图1的代码生成器16采用以处理从开发者系统20接收的包(包括要被转换为REST服务30并且是服务项目28的一部分的web服务的类)以便于生成REST服务30。
图3是示出了经由图1的代码生成器实现并且适合于处理经由表征图1的服务接口22的XML文件提供的包的示例过程80的流程图。
示例方法80包括初始分析步骤82,初始分析步骤82包括分析包(包括由代码生成器16经由图1的开发者系统20接收的XML文件)以获得用于实现对包中指示的资源名称的必需改变的信息。
随后,包中的类被传递到名称处理步骤84。名称处理步骤84包括参照如所示包括在图2的代码生成器类40中的类属性42使用名称注释修饰符处理每个类。
接下来,方法处理步骤86对于包中的每个类选择性地处理如所示包括在图2的代码生成器类40中的方法54。类属性42和伴随的方法属性54的处理可以包括如下文更全面地讨论的根据映射逻辑的映射。
检查步骤88随后检查以确认包中的所有类是否已经历名称处理84和方法处理86。如果包中的所有类已经历名称处理84和方法处理86,则执行转储文件创建步骤90。否则,控制返回到名称处理步骤84和方法处理步骤86直至包中的所有类被完全处理。
转储文件创建步骤90包括自动创建具有实现图1的REST服务30所需要的所有处理后的服务类的转储文件。
参照图1-3,对服务接口22的分析产生信息,包括诸如名称、修饰符类型、注释等之类的类属性,并且还包括诸如方法名称、输入参量(argument)和返回类型之类的方法数据。
经由以下伪代码示出了可以由图1的开发者系统20分析以产生要供给代码生成器16的XML文件的示例服务接口规范:
Figure BDA0001185172130000101
从对服务接口22的分析得到的XML文件的示例部分如下:
Figure BDA0001185172130000111
由代码生成器16使用以将服务接口22的属性映射到REST服务30的属性的示例映射度量被提供在以下表中。
表1
Figure BDA0001185172130000112
Figure BDA0001185172130000121
用于代码生成器16的输出的一部分的示例伪代码如下:
Figure BDA0001185172130000122
Figure BDA0001185172130000131
图4是适合于与图1-3的实施例一起使用的示例方法100的流程图。示例方法102包括第一步骤102,第一步骤102包括确定诸如图1的服务接口22之类的服务接口的一个或多个特性。
参照图1和4,第二步骤104包括接收具有与该确定相关联的信息的文件,例如XML文件。XML文件可以经由图1的开发者系统20提供。
第三步骤106包括基于文件自动生成计算机代码以实现代表性状态传输(REST)服务。计算机代码可以由图1的代码生成器16根据图4的过程80自动生成。
注意到方法100可以被扩充或以其他方式改变,而不脱离本教导的范围。例如,方法100还可以包括采用接收作为来自图1的REST分析工具26的输出的XML文件的代码生成器以自动生成计算机代码,即共同构成REST服务30的类。
在某些实施例中,作为服务项目28的一部分的web服务包括经由代码生成器16映射到REST服务30的一个或多个资源。
示例方法100还可以包括采用代码生成器16以创建包含包括所生成的计算机代码的一个或多个编程语言类的转储文件。代码生成器16可以采用名称注释修饰符以便于处理在由代码生成器16接收的包中指定的类。
方法还可以包括采用代码生成器16以处理包的类的每个方法以响应于此产生一个或多个更新的方法。更新的方法被更新以符合由服务接口22的特性需要的限制或约束。
示例方法100还可以包括经由Jersey REST容器(例如,图1的容器18)在Java平台(例如,如由图1的Java运行时系统24表示的Java平台)上部署一个或多个编程语言类(例如,Java类)。Java类可以是由代码生成器16输出并且由REST服务30表示的转储文件的一部分,并且该转储文件包含用于所有生成的Java REST资源文件的计算机代码。所有服务依赖关系被合并到跳转(jump)文件中。
方法100还可以包括采用经由Java(R)归档实现的计算机代码(例如,代码生成器16)以触发代码生成器16的运行,该计算机代码响应于收到来自开发者系统20的GET HTTP方法和/或POST方法。
尽管已参照其特定实施例来描述说明书,但是这些特定实施例仅是说明性的而不是限制性的。例如,尽管某些实施例讨论Jersey REST服务的自动生成,但是实施例不限制于此。例如,Apache CXF(TM)、RestEasy或WildFly实施方式是可能的。
包括C、C++、Java、汇编语言等的任何合适的编程语言可以被用于实现特定实施例的例程(routine)。诸如过程式编程技术或面向对象编程技术之类的不同编程技术可以被采用。例程可以在单个处理设备或多个处理器上执行。尽管步骤、操作或计算可以以具体顺序呈现,但是在不同特定实施例中该顺序可以被改变。在一些特定实施例中,在本说明书中被示为顺序的多个步骤可以同时执行。
特定实施例可以在用于由指令执行系统、装置、系统或设备使用或者与指令执行系统、装置、系统或设备连接的计算机可读存储介质中实现。特定实施例可以在软件或硬件或二者的组合中以控制逻辑的形式实现。控制逻辑在由一个或多个处理器执行时可以是可操作的,以执行特定实施例中描述的内容。
特定实施例可以通过使用被编程的通用数字计算机、通过使用专用集成电路、可编程逻辑器件、现场可编程门阵列来实现,光系统、化学系统、生物系统、量子系统或纳米工程系统、组件和机制可以被使用。一般而言,特定实施例的功能可以由本领域已知的任何方式来实现。分布式、联网系统、组件和/或电路可以被使用。数据的通信或传送可以是有线的、无线的或者通过任何其他方式。
还将理解的是附图/图中所描绘的元件中的一个或多个元件还可以如根据特定应用有用的以更分开或更集成的方式实现,或者甚至在某些情况中被移除或被表现为不可操作的。实现可以被存储在机器可读介质中的程序或代码以允许计算机执行上文描述的方法中的任何方法也在精神和范围内。
除非上下文另外清楚指出,否则如本文在说明书中和所附权利要求书各处使用的“一”、“一个”和“该”包括复数引用。此外,除非上下文另外清楚指出,否则如本文在说明书中和所附权利要求书各处使用的“在……中”的含义包括“在……中”和“在……上”。
因此,尽管本文已描述了特定实施例,但是在上述公开中也意味着一定范围的修改、各种改变和替换,并且将理解的是在一些实例中特定实施例的一些特征将在没有其他特征的对应使用的情况下被采用,而不脱离如所阐述的范围和精神。因此,可以做出许多修改以使特定情况或材料适应本质的范围和精神。

Claims (15)

1.一种用于便于web服务的开发的方法,所述方法包括:
获得用于实现对表征服务接口的包中指示的资源名称的必需改变的信息;
使用名称注释修饰符处理所述包中指定的每个类;
确定服务接口的一个或多个特性,其中所述一个或多个特性包括一个或多个服务接口类属性和服务接口方法数据;
生成包含映射的文件,其中所述映射通过将所述一个或多个服务接口类属性和服务接口方法数据映射到一个或多个代表性状态传输REST服务类属性和REST服务方法数据来将一个或多个web资源映射到REST服务;以及
基于所述映射自动生成计算机代码以实现REST服务。
2.如权利要求1所述的方法,其中所述文件包括XML文件。
3.如权利要求2所述的方法,其中所述XML文件表示应用到所述服务接口的REST分析工具的输出。
4.如上述权利要求中的任一权利要求所述的方法,其中所述web服务包括经由所述自动生成的步骤已映射到REST服务的一个或多个资源。
5.如权利要求1到3中的任一权利要求所述的方法,其中自动生成包括采用代码生成器来生成计算机代码以便于实现所述REST服务。
6.如权利要求5所述的方法,还包括采用所述代码生成器来创建包含包括所生成的计算机代码的一个或多个编程语言类的转储文件。
7.如权利要求6所述的方法,还包括采用名称注释修饰符以便于处理所述包中指定的类,其中所述包由所述代码生成器接收。
8.如权利要求7所述的方法,还包括处理所述包的所述类的每个方法以响应于此产生一个或多个更新的方法。
9.如权利要求6到8中的任一权利要求所述的方法,其中一个或多个编程语言类适合于经由Jersey REST容器被部署在Java(R)平台上。
10.如权利要求6到8中的任一权利要求所述的方法,其中所述转储文件包括用于经由所述自动生成的步骤生成的所有生成的Java REST资源文件的计算机代码。
11.如权利要求1到3和6到8中的任一权利要求所述的方法,其中自动生成还包括采用经由Java(R)归档实现的计算机代码,其中所述计算机代码适合于提供用于实现所述自动生成的步骤的指令。
12.如权利要求11所述的方法,其中所述计算机代码被包括在应用编程接口(API)中。
13.如权利要求11所述的方法,其中所述计算机代码包括编程语言类,该编程语言类适合于向用于处理与要被实现的web服务有关的包的每个类的过程提供信息。
14.一种用于便于web服务的开发的装置,包括:
耦接到显示器并且耦接到处理器可读存储设备的数字处理器,其中所述处理器可读存储设备包括能够由所述数字处理器执行以执行以下动作的一个或多个指令:
获得用于实现对表征服务接口的包中指示的资源名称的必需改变的信息;
使用名称注释修饰符处理所述包中指定的每个类;
确定服务接口的一个或多个特性,其中所述一个或多个特性包括一个或多个服务接口类属性和服务接口方法数据;
生成包含映射的文件,其中所述映射通过将所述一个或多个服务接口类属性和服务接口方法数据映射到一个或多个代表性状态传输REST服务类属性和REST服务方法数据来将一个或多个web资源映射到REST服务;以及
基于所述映射自动生成计算机代码以实现REST服务。
15.一种处理器可读存储设备,所述处理器可读存储设备包括能够由数字处理器执行的指令,所述处理器可读存储设备包括用于如下操作的一个或多个指令:
获得用于实现对表征服务接口的包中指示的资源名称的必需改变的信息;
使用名称注释修饰符处理所述包中指定的每个类;
确定服务接口的一个或多个特性,其中所述一个或多个特性包括一个或多个服务接口类属性和服务接口方法数据;
生成包含映射的文件,其中所述映射通过将所述一个或多个服务接口类属性和服务接口方法数据映射到一个或多个代表性状态传输REST服务类属性和REST服务方法数据来将一个或多个web资源映射到REST服务;以及
基于所述映射自动生成计算机代码以实现REST服务。
CN201480080025.5A 2014-06-25 2014-11-13 Rest服务源代码生成 Active CN106663002B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/315,248 2014-06-25
US14/315,248 US9916137B2 (en) 2014-06-25 2014-06-25 Rest service source code generation
PCT/US2014/065488 WO2015199748A1 (en) 2014-06-25 2014-11-13 Rest service source code generation

Publications (2)

Publication Number Publication Date
CN106663002A CN106663002A (zh) 2017-05-10
CN106663002B true CN106663002B (zh) 2020-11-10

Family

ID=52146667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480080025.5A Active CN106663002B (zh) 2014-06-25 2014-11-13 Rest服务源代码生成

Country Status (5)

Country Link
US (1) US9916137B2 (zh)
EP (1) EP3161617A1 (zh)
JP (1) JP6591458B2 (zh)
CN (1) CN106663002B (zh)
WO (1) WO2015199748A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116512B2 (en) * 2014-07-10 2018-10-30 Oracle International Corporation Service discovery and/or effort estimation in networked computing environments
US11194572B2 (en) * 2016-02-22 2021-12-07 International Business Machines Corporation Managing external feeds in an event-based computing system
US10848410B2 (en) * 2017-03-29 2020-11-24 Oracle International Corporation Ranking service implementations for a service interface
CN109426493A (zh) * 2017-08-21 2019-03-05 西门子公司 处理应用程序编程接口的描述信息的方法、装置和设备
CN108052374B (zh) * 2017-12-29 2021-08-31 郑州云海信息技术有限公司 一种部署容器微服务的方法及装置
US11288079B2 (en) * 2018-01-25 2022-03-29 Red Hat, Inc. Reducing classloading of hierarchically configured applications via provisioning
JP7073813B2 (ja) 2018-03-16 2022-05-24 富士通株式会社 制御プログラム、制御方法および情報処理装置
US10545730B2 (en) 2018-05-07 2020-01-28 Red Hat, Inc. Automatically generating code for application programming interfaces
CN109032569A (zh) * 2018-08-02 2018-12-18 山东浪潮通软信息科技有限公司 一种基于属性标签的RESTful服务自动发布方法
US10983767B2 (en) * 2019-01-04 2021-04-20 T-Mobile Usa, Inc. Microservice-based software development
US11068259B2 (en) 2019-01-04 2021-07-20 T-Mobile Usa, Inc. Microservice-based dynamic content rendering
US11372704B2 (en) * 2019-01-07 2022-06-28 International Business Machines Corporation Advanced java dump analysis
CN110727438B (zh) * 2019-09-11 2023-11-14 宝付网络科技(上海)有限公司 基于SpringBoot的web系统自动生成工具
CN110716715B (zh) * 2019-10-18 2024-01-19 恒生电子股份有限公司 一种应用程序开发方法、装置、设备及介质
CN111367932B (zh) * 2020-03-06 2023-05-12 深圳市今天国际物流技术股份有限公司 数据库表单变更通知方法、装置、计算机设备及存储介质
CN113535151B (zh) * 2020-04-14 2024-05-17 北京京东振世信息技术有限公司 代码生成方法和装置
CN112631569A (zh) * 2020-12-30 2021-04-09 上海中通吉网络技术有限公司 基于gRPC的自动生成与补全前后端代码的方法、装置及设备
US11567738B2 (en) * 2021-04-15 2023-01-31 Red Hat, Inc. Code generator for creating a unified data model for multiple language specifications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368217A (zh) * 2011-10-20 2012-03-07 镇江睿泰信息科技有限公司 一种元数据驱动的rest风格应用开发方法与系统
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001057663A2 (en) * 2000-02-04 2001-08-09 America Online Incorporated Optimized delivery of web application code
US8473595B2 (en) * 2009-12-30 2013-06-25 Bmc Software, Inc. Method and system to automatically adapt web services from one protocol/idiom to another protocol/idiom
US9298770B2 (en) * 2011-12-16 2016-03-29 Sap Se Generating remotely accessible repositories from language meta-models
US8856735B2 (en) * 2012-07-25 2014-10-07 Oracle International Corporation System and method of generating REST2REST services from WADL
US9231819B2 (en) * 2012-11-30 2016-01-05 Red Hat Israel, Ltd. Abstracting restful web service HTTP between a client and a server
US20140372970A1 (en) * 2013-06-13 2014-12-18 International Business Machines Corporation Method to auto generate jax-rs rest service implementation classes from existing interfaces

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368217A (zh) * 2011-10-20 2012-03-07 镇江睿泰信息科技有限公司 一种元数据驱动的rest风格应用开发方法与系统
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An IoT-Oriented Data Storage Framework in Cloud Computing Platform;Lihong Jiang 等;《IEEE Trans On Industrial Informatics》;20140501;第10卷(第2期);第1445,1448页 *

Also Published As

Publication number Publication date
EP3161617A1 (en) 2017-05-03
US20150378691A1 (en) 2015-12-31
JP6591458B2 (ja) 2019-10-16
WO2015199748A1 (en) 2015-12-30
US9916137B2 (en) 2018-03-13
JP2017523506A (ja) 2017-08-17
CN106663002A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN106663002B (zh) Rest服务源代码生成
US20070244650A1 (en) Service-oriented architecture for deploying, sharing, and using analytics
US7512942B2 (en) Model-driven software deployment in an application server
US8769502B2 (en) Template based asynchrony debugging configuration
US20050114378A1 (en) System and method for providing a standardized adaptor framework
US11048524B2 (en) Creating a tokenized process template for invoking one or more services by replacing service references with respective tokens
WO2020015191A1 (zh) 业务规则的发布管理方法、电子装置及可读存储介质
US7814458B2 (en) Dynamic editing support and validation of application specific information on business objects
WO2007001640A2 (en) Data centric workflows
CN114981775B (zh) 用于api综合管理的基于云的api元数据管理方法及系统
US8250226B2 (en) Generating one or more clients for generating one or more synthetic transactions with one or more web service operations
AU2022209333A1 (en) System and method for generating api development code for integrating platforms
US11875288B2 (en) Discovering and using application deployment dependencies to augment governance and compliance policy
US8667083B2 (en) Simplifying provisioning of asynchronous interaction with enterprise suites having synchronous integration points
US10606730B2 (en) Networked digital data processor log file viewer
US8972487B2 (en) Automated framework for testing enterprise services consumer technologies
US9244706B2 (en) Command line shell command generation based on schema
US9135001B2 (en) Dynamically configuring an integrated development environment
US7721279B1 (en) Packaging information integration applications
US10802810B2 (en) Consuming persistent library bundles
CN115883353A (zh) 信创环境下基于Spring Cloud Gateway网关路由插件编排和执行系统
Au et al. Hosting WCF Services on Microsoft Azure
EP2096560A1 (en) Database exploration for building wireless component applications
Mokhov et al. Service-Oriented Architectures and Web Services: Course Tutorial and Lab Notes

Legal Events

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