CN104580501A - 一种基于反射机制的Http接口动态发布方法与系统 - Google Patents
一种基于反射机制的Http接口动态发布方法与系统 Download PDFInfo
- Publication number
- CN104580501A CN104580501A CN201510036679.4A CN201510036679A CN104580501A CN 104580501 A CN104580501 A CN 104580501A CN 201510036679 A CN201510036679 A CN 201510036679A CN 104580501 A CN104580501 A CN 104580501A
- Authority
- CN
- China
- Prior art keywords
- interface
- specific implementation
- request
- reflex mechanism
- target interface
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于反射机制的Http接口动态发布方法与系统通过定义通用的接口输入输出协议,使用配置文件的形式配置要发布的接口,通过.net反射机制动态加载接口的具体实现,进行逻辑处理并返回结果集给调用者,实现了接口的动态添加、修改、删除,实现了模块化热拔插的发布方式,提高了可维护性,提高了系统的发布上线效率。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种基于反射机制的Http接口动态发布方法与系统。
背景技术
http接口是主流的b/s架构的应用程序间的数据交互接口,基于http协议,使用xml或json做为数据交互格式,实现两个或多个独立系统间的数据交互,使用.net webfrom的应用程序,一般的http接口实现方式如下图1所示;
这种http接口实现方式的缺点是:
1.接口地址与接口的具体实现藕合,新增、修改接口的实现不够灵活,对接口的管理控制不方便。
2.随着业务的发展及变更,接口需要做一些优化调整,经常泄及一些接口需要批量请求,这时需要对接口进行合并,现有的实现方式只能是新增一个新的接口,编写代码合并要合并的接口的逻辑,输出新的数据。
发明内容
为了克服上述技术问题, 本发明的目的为了实现接口的动态发布,让接口的发布与修改可以通过配置而不是硬编码编译更新的方式进行,实现多个接口通过访问参数的组可即可实现合并,而不需要二次开发。
本发明采用的技术方案是:
一种基于反射机制的Http接口动态发布方法,包括以下步骤
A)为所有参与数据交换的目标接口定义统一的访问代理地址URL;
B)向访问代理地址URL提交目标接口的请求数据;
C)访问代理地址URL接到该请求,通过CMD命令到配置文件中查找对应该请求的具体实现类,并反射该具体实现类;
D)执行所反射该具体实现类,从具体实现程序集中获取该具体实现类的实现方法程序;
E)利用D中所述实现方法程序发布目标接口。
进一步,所述步骤C中配置文件中具体实现类具有相应的配置项,通过添加配置项并布署相应的具体实现程序集来增加或修改接口。
所述步骤B中一次提交多个目标接口请求。
本发明还包括与上述方法同一发明构思的技术方案,即一种基于反射机制的Http接口动态发布系统,包括
输入请求模块,供调用者提交目标接口的请求数据;
接口代理模块,该模块为所有参与数据交换的目标接口定义统一的访问代理地址URL,并负责:接收输入请求模块的请求,通过CMD命令到其配置文件中查找对应该请求的具体实现类,反射该具体实现类并执行,获取目标接口的具体实现方法程序,然后发布目标接口;
具体实现程序集模块,包括若干接口的具体实现程序集,用于提供接口代理模块所需的具体实现方法程序。
进一步,所述接口代理模块的配置文件中具体实现类具有相应的配置项,通过添加配置项并布署相应的具体实现程序集来增加或修改接口。
进一步,所述输入请求模块一次提交多个目标接口请求可由所述接口代理模块20合并多个目标接口。
本发明的有益效果是:
1、通过配置文件而不是硬编码来发布接口,解藕接口的url地址与具体实现,比一般实现更灵活,不需要对原来代码做改动或重新编译,即可增量发布新接口,或修改原来接口的实现。
2、一般的方案,如果要请求多个接口,需要进行多次http请求,或改动程序,将多个接口合并成一个新的接口,这种方案不需要改动服务端代码即可实现一个http请求请求多个接口,请求方对请求参数采用组合的方式即可实现一次请求任意多个服务端接口,对接口的设计更灵活,更好扩展。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是传统http接口动态实现方式的流程图;
图2是本发明基于反射机制的Http接口动态发布系统架构图。
具体实施方式
参考图2所示,为本发明的一种基于反射机制的Http接口动态发布方法,包括以下步骤
A)为所有参与数据交换的目标接口定义统一的访问代理地址URL;
B)向访问代理地址URL提交目标接口的请求数据;
C)访问代理地址URL接到该请求,通过CMD命令到配置文件中查找对应该请求的具体实现类,并反射该具体实现类;
D)执行所反射该具体实现类,从具体实现程序集中获取该具体实现类的实现方法程序;
E)利用D中所述实现方法程序发布目标接口。
本发明还包括与上述方法同一发明构思的技术方案,即一种基于反射机制的Http接口动态发布系统,包括
输入请求模块10,供调用者提交目标接口的请求数据;
接口代理模块20,该模块为所有参与数据交换的目标接口定义统一的访问代理地址URL,并负责:接收输入请求模块10的请求,通过CMD命令到其配置文件中查找对应该请求的具体实现类,反射该具体实现类并执行,获取目标接口的具体实现方法程序,然后发布目标接口;
具体实现程序集模块30,包括若干接口的具体实现程序集,用于提供接口代理模块20所需的具体实现方法程序。
为了更充分的理解本发明,特提供应用实例,如下:
所有接口提供统一的访问代理URL,如http://***/interface.ashx;调用者通过get或post请求,
请求参数格式如下:
request={
"CMD":GetName,
……// 具体内容
}
访问代理地址URL接到该请求,通过CMD到配置文件中查找对应的具体实现类,反射该类,配置文件如下:
<group>
<Operate CMD="CheckPower"
Title="检测权限"
ClassName="NengLong.CMP.HTTPInterface.Personage.WebHttp.CheckPower, NengLong.CMP.BaseHTTPInterface, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=null"></Operate>
……
</group>
然后通过反射执行配置的方法,具体的实现方法可以来自不同的程序集,实现代理与实现的松藕合。
方法执行返回应答数据,如下: {
“CMD”:GetName
“ResultState”:1
……//应答内容
}
要增加或修改接口,只需要添加配置项,并布署相应的具体实现程序集即可,无需修改原来的程序集,并可以在代理中对请求者进行统一验证,对不同的请求者调用不同的实现方法,实现非常灵活的响应机制。
如果需要合并多个接口,不需要修改实现的代码,请求者只需要一次请求多个即可,请求参数如下:
request=[{
"CMD":”CheckPower”,
……// 具体内容
},{
"CMD":”GetName”,
……// 具体内容
}]
就可以在同一个http请求中同时请求两个接口的数据,返回
[{
“CMD” :”CheckPower”
“ResultState”:1
……//应答内容
},
{
“CMD”:“GetName”
“ResultState”:1
……//应答内容
}]
从而实现传统方法无法实现的批量请求方式。
本发明通过定义通用的接口输入输出协议,使用配置文件的形式配置要发布的接口,通过.net反射机制动态加载接口的具体实现,进行逻辑处理并返回结果集给调用者,实现了接口的动态添加、修改、删除,实现了模块化热拔插的发布方式,提高了可维护性,提高了系统的发布上线效率。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
Claims (6)
1. 一种基于反射机制的Http接口动态发布方法,其特征在于:包括以下步骤
A)为所有参与数据交换的目标接口定义统一的访问代理地址URL;
B)向访问代理地址URL提交目标接口的请求数据;
C)访问代理地址URL接到该请求,通过CMD命令到配置文件中查找对应该请求的具体实现类,并反射该具体实现类;
D)执行所反射该具体实现类,从具体实现程序集中获取该具体实现类的实现方法程序;
E)利用D中所述实现方法程序发布目标接口。
2.根据权利要求1所述的一种基于反射机制的Http接口动态发布方法,其特征在于:所述步骤C中配置文件中具体实现类具有相应的配置项,通过添加配置项并布署相应的具体实现程序集来增加或修改接口。
3.根据权利要求1所述的一种基于反射机制的Http接口动态发布方法,其特征在于:所述步骤B中一次提交多个目标接口请求。
4.一种基于反射机制的Http接口动态发布系统,其特征在于:包括
输入请求模块(10),供调用者提交目标接口的请求数据;
接口代理模块(20),该模块为所有参与数据交换的目标接口定义统一的访问代理地址URL,并负责:接收输入请求模块(10)的请求,通过CMD命令到其配置文件中查找对应该请求的具体实现类,反射该具体实现类并执行,获取目标接口的具体实现方法程序,然后发布目标接口;
具体实现程序集模块(30),包括若干接口的具体实现程序集,用于提供接口代理模块(20)所需的具体实现方法程序。
5.根据权利要求4所述的一种基于反射机制的Http接口动态发布系统,其特征在于:所述接口代理模块(20)的配置文件中具体实现类具有相应的配置项,通过添加配置项并布署相应的具体实现程序集来增加或修改接口。
6.根据权利要求4所述的一种基于反射机制的Http接口动态发布系统,其特征在于:所述输入请求模块(10)一次提交多个目标接口请求可由所述接口代理模块(20)合并多个目标接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510036679.4A CN104580501A (zh) | 2015-01-23 | 2015-01-23 | 一种基于反射机制的Http接口动态发布方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510036679.4A CN104580501A (zh) | 2015-01-23 | 2015-01-23 | 一种基于反射机制的Http接口动态发布方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104580501A true CN104580501A (zh) | 2015-04-29 |
Family
ID=53095658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510036679.4A Pending CN104580501A (zh) | 2015-01-23 | 2015-01-23 | 一种基于反射机制的Http接口动态发布方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580501A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017008645A1 (zh) * | 2015-07-13 | 2017-01-19 | 阿里巴巴集团控股有限公司 | 对http请求进行统一映射的方法和设备 |
CN106528215A (zh) * | 2016-10-25 | 2017-03-22 | 广东亿迅科技有限公司 | 基于java的动态加载命令的方法及装置 |
CN106790501A (zh) * | 2016-12-15 | 2017-05-31 | 咪咕音乐有限公司 | 一种基于接口跳转的业务处理方法及装置 |
CN107171959A (zh) * | 2017-04-20 | 2017-09-15 | 深圳中兴网信科技有限公司 | 基于soa的动态路由方法及动态路由系统 |
CN107678794A (zh) * | 2017-09-22 | 2018-02-09 | 努比亚技术有限公司 | 应用程序启动接口合并方法及移动终端 |
CN107818022A (zh) * | 2017-10-25 | 2018-03-20 | 努比亚技术有限公司 | 应用程序接口合并方法、移动终端及计算机可读存储介质 |
CN108076483A (zh) * | 2018-01-30 | 2018-05-25 | 努比亚技术有限公司 | 合并通信方法、移动终端、服务器及计算机可读存储介质 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN110413266A (zh) * | 2019-08-05 | 2019-11-05 | 广东三维家信息科技有限公司 | 一种haxe的反射机制的改进方法和系统 |
CN111224977A (zh) * | 2019-12-31 | 2020-06-02 | 中国广核电力股份有限公司 | 一种流程配置方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143835A1 (en) * | 2003-01-17 | 2004-07-22 | Rainer Dattke | Automatically upgradeable extension of software |
CN1779636A (zh) * | 2004-11-28 | 2006-05-31 | 中兴通讯股份有限公司 | 构建耦合系统的方法 |
CN101697119A (zh) * | 2009-10-12 | 2010-04-21 | 南京联创科技集团股份有限公司 | 基于JavaBean类导入格式取代传统URL访问地址的实现方法 |
CN103345420A (zh) * | 2013-06-03 | 2013-10-09 | 百度在线网络技术(北京)有限公司 | 批量调用api接口的方法、系统和装置 |
-
2015
- 2015-01-23 CN CN201510036679.4A patent/CN104580501A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143835A1 (en) * | 2003-01-17 | 2004-07-22 | Rainer Dattke | Automatically upgradeable extension of software |
CN1779636A (zh) * | 2004-11-28 | 2006-05-31 | 中兴通讯股份有限公司 | 构建耦合系统的方法 |
CN101697119A (zh) * | 2009-10-12 | 2010-04-21 | 南京联创科技集团股份有限公司 | 基于JavaBean类导入格式取代传统URL访问地址的实现方法 |
CN103345420A (zh) * | 2013-06-03 | 2013-10-09 | 百度在线网络技术(北京)有限公司 | 批量调用api接口的方法、系统和装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017008645A1 (zh) * | 2015-07-13 | 2017-01-19 | 阿里巴巴集团控股有限公司 | 对http请求进行统一映射的方法和设备 |
CN106528215A (zh) * | 2016-10-25 | 2017-03-22 | 广东亿迅科技有限公司 | 基于java的动态加载命令的方法及装置 |
CN106790501B (zh) * | 2016-12-15 | 2020-06-09 | 咪咕音乐有限公司 | 一种基于接口跳转的业务处理方法及装置 |
CN106790501A (zh) * | 2016-12-15 | 2017-05-31 | 咪咕音乐有限公司 | 一种基于接口跳转的业务处理方法及装置 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN107171959A (zh) * | 2017-04-20 | 2017-09-15 | 深圳中兴网信科技有限公司 | 基于soa的动态路由方法及动态路由系统 |
CN107678794A (zh) * | 2017-09-22 | 2018-02-09 | 努比亚技术有限公司 | 应用程序启动接口合并方法及移动终端 |
CN107678794B (zh) * | 2017-09-22 | 2021-01-01 | 努比亚技术有限公司 | 应用程序启动接口合并方法及移动终端 |
CN107818022A (zh) * | 2017-10-25 | 2018-03-20 | 努比亚技术有限公司 | 应用程序接口合并方法、移动终端及计算机可读存储介质 |
CN107818022B (zh) * | 2017-10-25 | 2021-08-24 | 努比亚技术有限公司 | 应用程序接口合并方法、移动终端及计算机可读存储介质 |
CN108076483A (zh) * | 2018-01-30 | 2018-05-25 | 努比亚技术有限公司 | 合并通信方法、移动终端、服务器及计算机可读存储介质 |
CN110413266A (zh) * | 2019-08-05 | 2019-11-05 | 广东三维家信息科技有限公司 | 一种haxe的反射机制的改进方法和系统 |
CN110413266B (zh) * | 2019-08-05 | 2024-01-19 | 广东三维家信息科技有限公司 | 一种haxe的反射机制的改进方法和系统 |
CN111224977A (zh) * | 2019-12-31 | 2020-06-02 | 中国广核电力股份有限公司 | 一种流程配置方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104580501A (zh) | 一种基于反射机制的Http接口动态发布方法与系统 | |
JP6532930B1 (ja) | ブロックチェーンベースのユーザ識別管理用の分散型台帳装置、分散型台帳方法 | |
US7971145B2 (en) | Systems and methods for adapting service interface behaviors | |
JP7043780B2 (ja) | マイクロサービスベースのデータ処理装置、方法及びプログラム | |
De Santis et al. | Zero-knowledge proofs of knowledge without interaction | |
US7761586B2 (en) | Accessing and manipulating data in a data flow graph | |
CN109145201B (zh) | 一种基于区块链的信息管理方法、装置、设备及存储介质 | |
CN111429241A (zh) | 一种账务处理方法和装置 | |
CN104160381A (zh) | 多租户环境中租户特定数据集的管理 | |
WO2020024896A1 (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN105354328B (zh) | 一种解决NoSQL数据库并发访问冲突的系统及方法 | |
US9563650B2 (en) | Migrating federated data to multi-source universe database environment | |
US9330140B1 (en) | Transient virtual single tenant queries in a multi-tenant shared database system | |
US10540352B2 (en) | Remote query optimization in multi data sources | |
US20190058582A1 (en) | Accessing blockchain data from applications | |
US9971794B2 (en) | Converting data objects from multi- to single-source database environment | |
US10673953B2 (en) | Transport channel via web socket for OData | |
CN103701935A (zh) | 一种云计算服务平台的构建方法及系统 | |
CN110209395A (zh) | 一种将sql嵌入高级语言的方法、设备及介质 | |
CN112286643A (zh) | 以太坊虚拟机的事务处理方法、装置、设备、程序和介质 | |
JP7291759B2 (ja) | イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体 | |
CN104021216A (zh) | 消息代理服务器及信息发布订阅方法和系统 | |
Bernard | Python recipes handbook: a problem-solution approach | |
Estrada | Apache Kafka 1.0 Cookbook: Over 100 practical recipes on using distributed enterprise messaging to handle real-time data | |
CN105528424A (zh) | 大数据环境下实现数据持久化的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |