CN117270957B - 一种接口版本控制方法、请求端及服务端 - Google Patents
一种接口版本控制方法、请求端及服务端 Download PDFInfo
- Publication number
- CN117270957B CN117270957B CN202311550730.4A CN202311550730A CN117270957B CN 117270957 B CN117270957 B CN 117270957B CN 202311550730 A CN202311550730 A CN 202311550730A CN 117270957 B CN117270957 B CN 117270957B
- Authority
- CN
- China
- Prior art keywords
- interface
- version
- request
- version control
- static file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000003068 static effect Effects 0.000 claims abstract description 102
- 230000004044 response Effects 0.000 claims abstract description 51
- 238000001914 filtration Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000004069 differentiation Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 4
- 244000046052 Phaseolus vulgaris Species 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种接口版本控制方法、请求端及服务端,接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。通过重新构建底层扫描接口的代码,巧妙地在请求路径中添加版本控制标识,实现了对不同版本接口的精细区分和管理。同时,对静态文件扫描逻辑进行重写,使其能够适应新的接口变革,从而显著提高了系统的灵活性和可维护性。
Description
技术领域
本发明涉及接口版本控制技术领域,具体涉及一种接口版本控制方法、请求端及服务端。
背景技术
在当今的信息化时代,后端接口在各种系统和应用之间起着至关重要的桥梁作用。为了满足用户多样化的使用需求,后端接口需要不断地进行升级和优化。然而,在升级过程中,如何在不改变原有接口的请求路径的情况下,实现对不同版本接口的区分和管理,成为了一个亟待解决的问题。
发明内容
为此,本发明提供一种接口版本控制方法、请求端及服务端,以解决在不改变原有接口的请求路径的情况下,实现对不同版本接口的区分和管理的问题。
为了实现上述目的,本发明提供如下技术方案:
根据本发明实施例的第一方面,提出一种接口版本控制方法,其特征在于,应用于服务端,所述方法包括:
接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。
进一步地,所述方法还包括:
对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,以实现在请求路径中增加接口的版本控制标识。
进一步地,对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:
创建一个新的版本控制注解,用于在接口上标记接口版本号;
在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;
根据接口上的版本号,为每个接口生成对应的请求路径;
在每个接口的方法上,定义具体的请求路径。
进一步地,根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件之前,所述方法还包括:
基于可配置的版本控制过滤器或拦截器来对请求进行预处理,所述版本控制过滤器或拦截器用于在启动时滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描。
进一步地,所述方法还包括:
服务端启动时对静态文件进行扫描,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,使得在返回响应时,不同版本的接口能够使用对应版本的静态文件。
进一步地,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,具体包括:
创建一个版本控制的配置类,用于读取和管理接口版本控制标识;
创建一个静态文件处理器类,用于处理静态文件的扫描和访问逻辑,在静态文件处理器类中,将接口版本控制标识与静态文件路径进行拼接;
在Spring容器中注册静态文件处理器类,以便能在不同组件中注入并使用,在需要使用静态文件路径的地方注入静态文件处理器类,并调用其方法获取带有接口版本控制标识的静态文件路径。
进一步地,所述方法还包括:
利用版本控制对接口进行优化,包括通过灰度发布的方式进行逐步放量,以避免新版本接口出现重大问题而影响到整体系统;
利用版本控制对接口进行热更新,当新版本的接口出现问题时,迅速回滚到旧版本,以保障系统的稳定性。
根据本发明实施例的第二方面,提出一种接口版本控制方法,应用于请求端,所述方法包括:
向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。
根据本发明实施例的第三方面,提出一种服务端,所述服务端包括:
请求接收模块,用于接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
响应返回模块,用于根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识。
根据本发明实施例的第四方面,提出一种请求端,所述请求端包括:
请求发送模块,用于向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
响应获取模块,用于获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,且在响应结果中包含有相应的接口版本控制标识。
根据本发明实施例的第五方面,提出一种接口版本控制设备,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种接口版本控制方法的步骤。
根据本发明实施例的第六方面,提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种接口版本控制方法的步骤。
本发明提出一种接口版本控制方法、请求端及服务端,接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识。通过在请求路径中增加版本标识,可以实现对不同版本接口的区分和管理,从而更好地满足用户的需求。这种版本控制方法具有很高的实用价值和使用价值,为后端接口的升级和优化提供了强有力的支持。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为本发明第一实施例提供的一种接口版本控制方法的流程图;
图2为本发明第二实施例提供的一种接口版本控制方法的流程图;
图3为本发明第三实施例提供的一种服务端的结构示意图;
图4为本发明第四实施例提供的一种请求端的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一实施例提供了一种接口版本控制方法,应用于服务端,下面结合图1进行说明。
如图1所示,在步骤S101中,接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识。
本实施例中,通过对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,以实现在请求路径中增加接口的版本控制标识。
Spring容器是一个用于管理应用程序中的对象的容器。它通过依赖注入和控制反转等机制,帮助我们解耦和组织应用程序的组件,并提供了生命周期管理、对象创建和销毁等功能。在Spring框架中,有两种主要的容器:BeanFactory和ApplicationContext。BeanFactory:它是Spring框架最基本的容器接口,提供了对象的创建、配置和管理功能。BeanFactory延迟加载对象,也就是在第一次请求Bean时才会创建对象。Spring容器的主要作用是将应用程序中的组件,如Service、Repository、Controller等,实例化并管理起来。它通过配置文件(XML或注解)或编程方式来定义Bean的创建和依赖关系。Spring容器会负责创建Bean,并通过依赖注入注入Bean之间的依赖关系,从而实现对象的解耦和组织。通过Spring容器,可以方便地管理和访问应用程序中的各种对象,提高开发效率,降低代码的耦合性,并且能够利用Spring提供的各种功能和扩展,帮助构建健壮、可扩展的应用程序。
其中,对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:创建一个新的版本控制注解,用于在接口上标记接口版本号;在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;根据接口上的版本号,为每个接口生成对应的请求路径;在每个接口的方法上,定义具体的请求路径。
针对含有版本控制注解的接口,通过对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,将原有请求路径进行独具匠心的重组。具体地,首先将注解中的版本信息提炼出来,并巧妙地添加到请求路径的最前端。举个例子,将原有的请求路径“/api/login”改造为“/v1/api/login”。如此一来,便能够在不影响原有接口功能的同时,实现对不同版本接口的区分和管理。
如图1所示,在步骤S102中,根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。
本发明实施例通过在请求路径的最前方增加版本标识,可以区分不同的接口版本,并对不同版本的接口进行独立的管理和维护。这种版本控制方法不仅提高了系统的可扩展性,还为后端接口的升级和优化提供了便利。将版本标识作为请求路径的一部分,例如,可以使用“/v1”表示版本1,使用“/v2”表示版本2。这样,不同的请求路径对应不同的接口版本,同时,可以在服务器端通过判断请求路径中的版本标识,来选择性地返回不同版本的接口响应。
此外,对于返回参数和请求参数的修改,可以通过版本控制来区分不同版本的接口。例如,在版本1中,接口的返回参数可能包括A、B、C三项,而在版本2中,接口的返回参数可能增加了一项D。可以在返回结果中加入一个版本标识,以表明当前返回的是哪个版本的接口结果。同样地,对于请求参数的修改,也可以通过版本控制来实现。
本实施例中,服务端启动时对静态文件进行扫描,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,使得在返回响应时,不同版本的接口能够使用对应版本的静态文件。
静态文件通常指的是在一个Web应用程序中不需要经常变化的文件,例如HTML、CSS、JavaScript、图像文件、字体文件等。这些文件通常是在服务器上存储的,并且在用户请求网页时通过HTTP协议传送到用户的浏览器,以构建网页的外观和功能。常见的静态文件类型有:HTML文件:网页的结构和内容通常以HTML文件的形式提供,这些文件描述了文档的布局和内容;CSS文件:层叠样式表(CSS)文件用于定义网页的样式、布局和外观,包括字体、颜色、间距等;JavaScript文件:JavaScript文件包含网页的交互性和动态功能的代码,例如表单验证、动画效果和用户界面交互;图像文件:图片文件,如JPEG、PNG、GIF等,用于在网页中显示图像或图形;字体文件:用于自定义文本字体的字体文件,通常用于网页设计的排版目的。这些静态文件通常由Web服务器托管,并通过URL链接在网页中引用。浏览器会下载这些文件,然后根据其内容渲染网页,以便用户可以浏览和与网页进行交互。
其中,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,具体包括:创建一个版本控制的配置类,用于读取和管理接口版本控制标识,可以使用@Configuration注解来标记该类,并使用@Value注解来读取配置文件中的版本控制标识;创建一个静态文件处理器类,用于处理静态文件的扫描和访问逻辑,在该类中,使用@Autowired注解注入配置类,并将版本控制标识与静态文件路径进行拼接;在Spring容器中注册静态文件处理器类,以便能在不同组件中注入并使用,在需要使用静态文件路径的地方注入静态文件处理器类,并调用其方法获取带有接口版本控制标识的静态文件路径。
通过在服务端启动时对所有的静态文件扫描,将静态文件扫描路径与版本控制标识做匹配重新注入到spring容器中。在此过程中,将版本控制标识作为路径的关键部分,以便在任何时候都可以迅速定位到特定版本的静态文件。这样设计使得能够更加方便地管理和维护不同版本的静态文件。
为了进一步增强系统的灵活性和可靠性,在服务器端设置了一个可配置的过滤器或拦截器。该过滤器或拦截器在服务启动时可以选择是否滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描,从而极为灵活地配置服务。
过滤器或拦截器可以有效地制约不同版本接口的使用权限和访问频率等,进一步提升了系统的安全性和稳健性同时也解决了针对于webflux项目使用版本控制时实现WebMvcConfigurationSupport接口,因webflux项目必须使用WebMvcConfigure,而WebMvcConfigure与WebMvcConfigurationSupport冲突所造成无法启动项目的问题,对于webflux项目会将此版本控制过滤,极大地提升了版本控制功能的可插拔性。
最后,所有接入版本控制过滤器的服务需要使用版本控制的接口只需在方法上方增加版本控制注解@ApiVersion(此注解内容和名称可自行定义),此注解中含有value参数,指定时只需对value赋值就可使用版本控制功能,而对value赋的值便为在请求路径最前端拼接的路径。
同时,在实现过程中,还可以利用版本控制对接口进行优化。例如,对于新上线的接口版本,我们可以通过灰度发布等方式进行逐步放量,以避免新版本接口出现重大问题而影响到整体系统。此外,我们还可以利用版本控制对接口进行热更新,当新版本的接口出现问题时,可以迅速回滚到旧版本,以保障系统的稳定性。
与现有技术相比,本申请实施例提供的一种接口版本控制方法,接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识。通过重新构建底层扫描接口的代码和全新设计静态文件扫描逻辑,实现了对不同版本接口的有效区分和管理,同时提升了系统的灵活性和可维护性。通过可配置的过滤器或拦截器设置,实现了对服务配置极度灵活的控制和管理。这种方法不仅显著提高了系统的可扩展性和灵活性,还降低了维护成本并提高了系统的可用性。
本发明第二实施例提供了一种接口版本控制方法,应用于请求端,下面结合图2进行说明。
如图2所示,在步骤S201中,向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识。
如图2所示,在步骤S202中,获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。
需要说明的是,对于本发明第二实施例提供的一种接口版本控制方法的详细描述可以参考对本申请第一实施例提供的一种接口版本控制方法的相关描述,这里不再赘述。
与现有技术相比,本申请实施例提供的一种接口版本控制方法,向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。通过重新构建底层扫描接口的代码和全新设计静态文件扫描逻辑,实现了对不同版本接口的有效区分和管理,同时提升了系统的灵活性和可维护性。通过可配置的过滤器或拦截器设置,实现了对服务配置极度灵活的控制和管理。这种方法不仅显著提高了系统的可扩展性和灵活性,还降低了维护成本并提高了系统的可用性。
本发明第三实施例提供了一种服务端,如图3所示,所述服务端包括:
请求接收模块,用于接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
响应返回模块,用于根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识。
需要说明的是,对于本发明第二实施例提供的一种服务端的详细描述可以参考对本申请第一实施例提供的一种接口版本控制方法的相关描述,这里不再赘述。
与现有技术相比,本申请实施例提供的一种服务端,接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识。通过重新构建底层扫描接口的代码和全新设计静态文件扫描逻辑,实现了对不同版本接口的有效区分和管理,同时提升了系统的灵活性和可维护性。通过可配置的过滤器或拦截器设置,实现了对服务配置极度灵活的控制和管理。这种方法不仅显著提高了系统的可扩展性和灵活性,还降低了维护成本并提高了系统的可用性。
本发明第四实施例提供了一种请求端,如图4所示,所述请求端包括:
请求发送模块,用于向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
响应获取模块,用于获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,且在响应结果中包含有相应的接口版本控制标识。
需要说明的是,对于本发明第四实施例提供的一种请求端的详细描述可以参考对本申请第二实施例提供的一种接口版本控制方法的相关描述,这里不再赘述。
与现有技术相比,本申请实施例提供的一种请求端,向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识。通过重新构建底层扫描接口的代码和全新设计静态文件扫描逻辑,实现了对不同版本接口的有效区分和管理,同时提升了系统的灵活性和可维护性。通过重新构建底层扫描接口的代码和全新设计静态文件扫描逻辑,实现了对不同版本接口的有效区分和管理,同时提升了系统的灵活性和可维护性。通过可配置的过滤器或拦截器设置,实现了对服务配置极度灵活的控制和管理。这种方法不仅显著提高了系统的可扩展性和灵活性,还降低了维护成本并提高了系统的可用性。
另外,本发明实施例还提供了一种电子设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种接口版本控制方法的步骤。
需要说明的是,对于本发明实施例提供的一种电子设备的详细描述可以参考对本申请实施例提供的一种接口版本控制方法的相关描述,这里不再赘述。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种接口版本控制方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (7)
1.一种接口版本控制方法,其特征在于,应用于服务端,所述方法包括:
接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;
根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识;
所述方法还包括:
对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,以实现在请求路径中增加接口的版本控制标识;
对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:
创建一个新的版本控制注解,用于在接口上标记接口版本号;
在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;
根据接口上的版本号,为每个接口生成对应的请求路径;
在每个接口的方法上,定义具体的请求路径;
根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件之前,所述方法还包括:
基于可配置的版本控制过滤器或拦截器来对请求进行预处理,所述版本控制过滤器或拦截器用于在启动时滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描。
2.根据权利要求1所述的一种接口版本控制方法,其特征在于,所述方法还包括:
服务端启动时对静态文件进行扫描,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,使得在返回响应时,不同版本的接口能够使用对应版本的静态文件。
3.根据权利要求2所述的一种接口版本控制方法,其特征在于,将静态文件扫描路径与接口的版本控制标识进行匹配重新注入到spring容器中,具体包括:
创建一个版本控制的配置类,用于读取和管理接口版本控制标识;
创建一个静态文件处理器类,用于处理静态文件的扫描和访问逻辑,在静态文件处理器类中,将接口版本控制标识与静态文件路径进行拼接;
在Spring容器中注册静态文件处理器类,以便能在不同组件中注入并使用,在需要使用静态文件路径的地方注入静态文件处理器类,并调用其方法获取带有接口版本控制标识的静态文件路径。
4.根据权利要求1所述的一种接口版本控制方法,其特征在于,所述方法还包括:
利用版本控制对接口进行优化,包括通过灰度发布的方式进行逐步放量,以避免新版本接口出现重大问题而影响到整体系统;
利用版本控制对接口进行热更新,当新版本的接口出现问题时,迅速回滚到旧版本,以保障系统的稳定性。
5.一种接口版本控制方法,其特征在于,应用于请求端,所述方法包括:
向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;其中通过对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,以实现在请求路径中增加接口的版本控制标识;
对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:
创建一个新的版本控制注解,用于在接口上标记接口版本号;
在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;
根据接口上的版本号,为每个接口生成对应的请求路径;
在每个接口的方法上,定义具体的请求路径;
获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,在响应结果中包含有相应的接口版本控制标识;
其中服务端根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件之前:
基于可配置的版本控制过滤器或拦截器来对请求进行预处理,所述版本控制过滤器或拦截器用于在启动时滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描。
6.一种服务端,其特征在于,所述服务端包括:
请求接收模块,用于接收请求端发送的数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:
创建一个新的版本控制注解,用于在接口上标记接口版本号;
在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;
根据接口上的版本号,为每个接口生成对应的请求路径;
在每个接口的方法上,定义具体的请求路径;
响应返回模块,用于根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件,且在响应结果中包含有相应的接口版本控制标识;
其中服务端根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件之前:
基于可配置的版本控制过滤器或拦截器来对请求进行预处理,所述版本控制过滤器或拦截器用于在启动时滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描。
7.一种请求端,其特征在于,所述请求端包括:
请求发送模块,用于向服务端发送数据请求,其中所述数据请求的请求路径中添加有请求接口的版本控制标识;其中通过对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,以实现在请求路径中增加接口的版本控制标识;
对底层将服务中接口注入spring容器的接口扫描方法进行全面的重构,具体包括:
创建一个新的版本控制注解,用于在接口上标记接口版本号;
在Spring容器的接口扫描方法中,遍历所有扫描到的接口,获取接口上的版本控制注解,并将其值作为版本号;
根据接口上的版本号,为每个接口生成对应的请求路径;
在每个接口的方法上,定义具体的请求路径;
响应获取模块,用于获取服务端根据所述请求路径中的接口的版本控制标识返回的对应版本的接口响应,且在响应结果中包含有相应的接口版本控制标识;
其中服务端根据所述请求路径中的接口的版本控制标识,向所述请求端返回对应版本接口的响应,其中静态文件加载时根据接口版本加载对应版本的静态文件之前:
基于可配置的版本控制过滤器或拦截器来对请求进行预处理,所述版本控制过滤器或拦截器用于在启动时滤掉版本控制,如果无需使用版本控制则通过拦截器跳过接口和静态文件扫描。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311550730.4A CN117270957B (zh) | 2023-11-21 | 2023-11-21 | 一种接口版本控制方法、请求端及服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311550730.4A CN117270957B (zh) | 2023-11-21 | 2023-11-21 | 一种接口版本控制方法、请求端及服务端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117270957A CN117270957A (zh) | 2023-12-22 |
CN117270957B true CN117270957B (zh) | 2024-03-08 |
Family
ID=89210858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311550730.4A Active CN117270957B (zh) | 2023-11-21 | 2023-11-21 | 一种接口版本控制方法、请求端及服务端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270957B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416396A (zh) * | 2021-12-29 | 2022-04-29 | 北京房多多信息技术有限公司 | 一种接口版本控制方法、装置、电子设备及存储介质 |
CN115857997A (zh) * | 2022-11-30 | 2023-03-28 | 广州市玄武无线科技股份有限公司 | Electron桌面应用版本更新方法、装置、终端设备及存储介质 |
CN115934129A (zh) * | 2022-12-15 | 2023-04-07 | 中国平安人寿保险股份有限公司 | 软件项目更新方法、装置、计算机设备及存储介质 |
CN116304403A (zh) * | 2023-02-17 | 2023-06-23 | 深圳复临科技有限公司 | 网页访问方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180090180A (ko) * | 2015-12-28 | 2018-08-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템 |
-
2023
- 2023-11-21 CN CN202311550730.4A patent/CN117270957B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416396A (zh) * | 2021-12-29 | 2022-04-29 | 北京房多多信息技术有限公司 | 一种接口版本控制方法、装置、电子设备及存储介质 |
CN115857997A (zh) * | 2022-11-30 | 2023-03-28 | 广州市玄武无线科技股份有限公司 | Electron桌面应用版本更新方法、装置、终端设备及存储介质 |
CN115934129A (zh) * | 2022-12-15 | 2023-04-07 | 中国平安人寿保险股份有限公司 | 软件项目更新方法、装置、计算机设备及存储介质 |
CN116304403A (zh) * | 2023-02-17 | 2023-06-23 | 深圳复临科技有限公司 | 网页访问方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117270957A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10750044B2 (en) | Information processing system, information processing apparatus, and method for processing information | |
US10356266B2 (en) | Information processing system, information processing apparatus, and method for processing information | |
US11689515B2 (en) | Information processing device, information management method, and information processing system | |
US9948807B2 (en) | Multi-function device for executing plurality of functions related to plural types of services | |
CA2846162C (en) | Methods and systems for open source integration | |
US8769050B2 (en) | Serving font files in varying formats based on user agent type | |
US20100281139A1 (en) | Mobile terminal and associated storage devices having web servers, and method for controlling the same | |
US8959120B2 (en) | Information processing apparatus, information processing method, and function expansion program | |
CN106155993B (zh) | 图像形成装置 | |
US20120036571A1 (en) | Smart card, anti-virus system and scanning method using the same | |
US7263562B2 (en) | Method and system for describing uploaded files statement regarding federally-sponsored research or development | |
US20070118507A1 (en) | Managing software configuration of a wireless device | |
KR20040111060A (ko) | 셀룰러 전화 프로토콜 적응적 프린팅 방법 및 시스템 | |
CN101378400A (zh) | 实现桌面应用和Web应用聚合的方法、服务器和系统 | |
CN109660684B (zh) | 图像处理装置及其控制方法、以及存储介质 | |
CN104375872A (zh) | 一种安卓系统实现快速开机的方法及装置 | |
CN106155735B (zh) | 图像形成装置 | |
CN110941779B (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
US11159694B2 (en) | Information processing system, information processing apparatus, and method of generating screen | |
US8508541B2 (en) | Information processing device, information processing method, and recording medium | |
US20170111531A1 (en) | Scan processing system, information processing system, and cooperative processing method | |
CN102023998A (zh) | 用于处理网页以便在手持设备上显示的方法和装置 | |
CN108984192A (zh) | 信息处理设备、计算机可读介质和程序管理方法 | |
CN117270957B (zh) | 一种接口版本控制方法、请求端及服务端 | |
CN115576536A (zh) | 一种通过分析字节码自动生成接口文档的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |