买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于django框架的接口调用记录方法、装置、设备及存储介质_平安科技(深圳)有限公司_201910269322.9 

申请/专利权人:平安科技(深圳)有限公司

申请日:2019-04-04

公开(公告)日:2024-02-23

公开(公告)号:CN110333954B

主分类号:G06F9/54

分类号:G06F9/54

优先权:

专利状态码:有效-授权

法律状态:2024.02.23#授权;2021.05.07#实质审查的生效;2019.10.15#公开

摘要:本发明涉及大数据技术领域,公开了一种基于django框架的接口调用记录方法,包括以下步骤:检测当前是否存在前端发起的接口调用请求的开始信号;若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;检测当前是否存在所述接口调用请求的结束信号或异常信号;若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。本发明还公开了一种基于django框架的接口调用记录装置、设备及计算机可读存储介质。本发明使得后端可以直接获取到接口调用的请求信息,提升了接口调用记录的便捷性。

主权项:1.一种基于django框架的接口调用记录方法,其特征在于,所述基于django框架的接口调用记录方法包括以下步骤:设置自定义中间件以及各接口调用请求对应的信号处理函数,并将各信号处理函数与对应信号进行绑定;将自定义中间件以及各信号处理函数注册到本地配置文件中,其中,所述信号包括接口调用请求的开始信号、结束信号以及异常信号;检测当前是否存在前端发起的接口调用请求的开始信号;若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;检测当前是否存在所述接口调用请求的结束信号或异常信号;若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中;所述若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息包括:若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,并触发执行与所述开始信号绑定的信号处理函数;其中,通过执行与所述开始信号绑定的信号处理函数,以执行以下操作:检测当前接口调用请求是否采用post方法;若是,则将通过post方法提交的请求信息拷贝到所述线程共享变量中;所述若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中包括:若当前存在所述接口调用请求的结束信号,则触发执行与所述结束信号绑定的信号处理函数;若当前存在所述接口调用请求的异常信号,则触发执行与所述异常信号绑定的信号处理函数;其中,通过执行与所述结束信号或所述异常信号绑定的信号处理函数,以执行以下操作:从所述线程共享变量中读取请求信息;将所述请求信息作为用户活动信息并按照预置字段格式保存到所述数据库中。

全文数据:基于django框架的接口调用记录方法、装置、设备及存储介质技术领域本发明涉及大数据技术领域,尤其涉及一种基于django框架的接口调用记录方法、装置、设备及计算机可读存储介质。背景技术随着智能终端技术的快速发展,越来越多的终端应用被开发。以Android操作系统为例,由于Android系统的开源性,基于Android系统进行开发的第三方应用种类繁多。通常应用程序在启动之后,应用程序的所有进程都在用户终端上运行,前端的用户操作行为在后端是不可见的。为更好地了解和分析用户行为,进而提升用户体验,因此,应用程序运营方需要在后端获得前端的用户操作行为,而前端的用户操作行为具体可通过前端向后端发起的接口调用请求进行分析得到,也即后端需要记录前端的接口调用请求信息。现有技术中,通常都是先由前端记录接口调用的请求信息并生成日志,然后再将日志上传后端,因而后端并不能直接获得前端接口调用的请求信息,也即存在记录接口调用的请求信息不够便捷。发明内容本发明的主要目的在于提供一种基于django框架的接口调用记录方法、装置、设备及计算机可读存储介质,旨在解决现有技术记录接口调用的请求信息不够便捷的技术问题。为实现上述目的,本发明提供一种基于django框架的接口调用记录方法,其特征在于,所述基于django框架的接口调用记录方法包括以下步骤:检测当前是否存在前端发起的接口调用请求的开始信号;若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;检测当前是否存在所述接口调用请求的结束信号或异常信号;若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。可选地,在所述检测当前是否存在前端发起的接口调用请求的开始信号的步骤之前,还包括:设置自定义中间件以及各接口调用请求对应的信号处理函数,并将各信号处理函数与对应信号进行绑定;将自定义中间件以及各信号处理函数注册到本地配置文件中,其中,所述信号包括:接口调用请求的开始信号、结束信号以及异常信号。可选地,所述若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息包括:若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,并触发执行与所述开始信号绑定的信号处理函数;其中,通过执行与所述开始信号绑定的信号处理函数,以执行以下操作:检测当前接口调用请求是否采用post方法;若是,则将通过post方法提交的请求信息拷贝到所述线程共享变量中。可选地,所述若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中包括:若当前存在所述接口调用请求的结束信号,则触发执行与所述结束信号绑定的信号处理函数;若当前存在所述接口调用请求的异常信号,则触发执行与所述异常信号绑定的信号处理函数;其中,通过执行与所述结束号或所述异常信号绑定的信号处理函数,以执行以下操作:从所述线程共享变量中读取请求信息;将所述请求信息作为用户活动信息并按照预置字段格式保存到所述数据库中。可选地,所述请求信息包括:调用方名称、调用方IP地址、调用接口名称、请求时间以及请求内容。可选地,在所述若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中的步骤之后,还包括:创建数据加工任务,并配置数据加工方式与数据加工字段;执行所述数据加工任务,以基于所述数据加工字段,从所述数据库中读取对应原始数据,以及调用与所述数据加工方式对应的数据加工插件对所述原始数据进行加工,得到加工数据并存入所述数据库中。可选地,在所述执行所述数据加工任务的步骤之后,还包括:创建数据报表,并配置所述数据报表对应的数据源、统计时间范围、统计对象以及数据展现方式;以所述统计时间范围与统计对象为数据筛选条件,从所述数据库中读取与所述数据源对应且符合所述数据筛选条件的加工数据;调用与所述数据展现方式对应的数据展现插件对读取的加工数据进行包装,得到报表数据并输出展示。进一步地,为实现上述目的,本发明还提供一种基于django框架的接口调用记录装置,所述基于django框架的接口调用记录装置包括:检测模块,用于检测当前是否存在前端发起的接口调用请求的开始信号;以及检测当前是否存在所述接口调用请求的结束信号或异常信号;记录模块,用于若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;保存模块,用于若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。可选地,所述基于django框架的接口调用记录装置还包括:设置模块,用于设置自定义中间件以及各接口调用请求对应的信号处理函数,并将各信号处理函数与对应信号进行绑定;将自定义中间件以及各信号处理函数注册到本地配置文件中,其中,所述信号包括:接口调用请求的开始信号、结束信号以及异常信号。可选地,所述记录模块具体用于:若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,并触发执行与所述开始信号绑定的信号处理函数;其中,通过执行与所述开始信号绑定的信号处理函数,以执行以下操作:检测当前接口调用请求是否采用post方法;若是,则将通过post方法提交的请求信息拷贝到所述线程共享变量中。可选地,所述保存模块具体用于:若当前存在所述接口调用请求的结束信号,则触发执行与所述结束信号绑定的信号处理函数;若当前存在所述接口调用请求的异常信号,则触发执行与所述异常信号绑定的信号处理函数;其中,通过执行与所述结束号或所述异常信号绑定的信号处理函数,以执行以下操作:从所述线程共享变量中读取请求信息;将所述请求信息作为用户活动信息并按照预置字段格式保存到所述数据库中。可选地,所述请求信息包括:调用方名称、调用方IP地址、调用接口名称、请求时间以及请求内容。可选地,所述基于django框架的接口调用记录装置还包括:数据加工模块,用于创建数据加工任务,并配置数据加工方式与数据加工字段;执行所述数据加工任务,以基于所述数据加工字段,从所述数据库中读取对应原始数据,以及调用与所述数据加工方式对应的数据加工插件对所述原始数据进行加工,得到加工数据并存入所述数据库中。可选地,所述基于django框架的接口调用记录装置还包括:报表展示模块,用于创建数据报表,并配置所述数据报表对应的数据源、统计时间范围、统计对象以及数据展现方式;以所述统计时间范围与统计对象为数据筛选条件,从所述数据库中读取与所述数据源对应且符合所述数据筛选条件的加工数据;调用与所述数据展现方式对应的数据展现插件对读取的加工数据进行包装,得到报表数据并输出展示。进一步地,为实现上述目的,本发明还提供一种基于django框架的接口调用记录设备,所述基于django框架的接口调用记录设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的接口调用记录程序,所述接口调用记录程序被所述处理器执行时实现如上述任一项所述的基于django框架的接口调用记录方法的步骤。进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有接口调用记录程序,所述接口调用记录程序被处理器执行时实现如上述任一项所述的基于django框架的接口调用记录方法的步骤。本发明中,后端采用django框架的信号机制来监控前端发起的接口调用请求,并获取前端接口调用中的请求信息,进而使得后端可以直接获取到前端接口调用的请求信息。另外,由于后端采用django框架,因而即使前端使用其他技术框架也不会影响后端记录接口调用的请求信息,解决了前后端分离框架中后端无法直接获取前端接口调用的请求信息的问题。此外,本发明还进一步降低了后端获取接口调用请求信息时的系统开销。附图说明图1为本发明实施例方案涉及的基于django框架的接口调用记录设备运行环境的结构示意图;图2为本发明基于django框架的接口调用记录方法第一实施例的流程示意图;图3为本发明基于django框架的接口调用记录方法第二实施例的流程示意图;图4为本发明基于django框架的接口调用记录方法第三实施例的流程示意图;图5为本发明基于django框架的接口调用记录方法第四实施例的流程示意图;图6为本发明基于django框架的接口调用记录装置一实施例的功能模块示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明提供一种基于django框架的接口调用记录设备。参照图1,图1为本发明实施例方案涉及的基于django框架的接口调用记录设备运行环境的结构示意图。如图1所示,该基于django框架的接口调用记录设备包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏Display、输入单元比如键盘Keyboard,网络接口1004可选的可以包括标准的有线接口、无线接口如WI-FI接口。存储器1005可以是高速RAM存储器,也可以是稳定的存储器non-volatilememory,例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的基于django框架的接口调用记录设备的硬件结构并不构成对基于django框架的接口调用记录设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及接口调用记录程序。其中,操作系统是管理和控制基于django框架的接口调用记录设备和软件资源的程序,支持接口调用记录程序以及其它软件和或程序的运行。在图1所示的基于django框架的接口调用记录设备的硬件结构中,网络接口1004主要用于接入网络;用户接口1003主要用于侦测确认指令和编辑指令等,而处理器1001可以用于调用存储器1005中存储的接口调用记录程序,并执行以下基于django框架的接口调用记录方法的各实施例的操作。基于上述基于django框架的接口调用记录设备硬件结构,提出本发明基于django框架的接口调用记录方法的各个实施例。为便于更好地理解本发明,下面对django框架技术进行简要说明。django框架是一个基于MVC构造的框架,其包含一个“信号的分发器”,用于在框架执行操作时解耦各种处理动作。当django框架发生动作时将发出信号,而监听了这个信号的函数就会自动执行。当某事件在框架内发生时,进而可以通知到关联的应用程序。django内置的信号包括:内置信号、数据库迁移信号、请求和响应的信号、测试信号等。对于内置信号,使用时需要在信号中注册对应的函数,当应用程序执行相应操作时,自动触发注册函数。此外,django还允许自定义信号。对于的django内的信号来说,只需要把想执行的函数注册到信号中,那么当动作发生时对应信号的注册函数便会自动执行。此外,django框架中的中间件middleware在django中其实是一个类,包含有多个成员函数,在请求到来和结束或者发生异常时,django会根据自己的规则在合适时机执行中间件中的相应函数。参照图2,图2为本发明基于django框架的接口调用记录方法第一实施例的流程示意图。本实施例中,所述基于django框架的接口调用记录方法包括以下步骤:步骤S110,检测当前是否存在前端发起的接口调用请求的开始信号;本实施例预先构建了基于django框架后端系统,后端通过django框架实时检测前端或者第三方应用发起的针对后端接口的接口调用请求,比如Http请求。本实施例对于前端应用、第三方应用以及后端系统的功能不限,同时对于接口调用请求的具体形式和内容不限,具体根据实际需要进行设置。本实施例中,基于django框架的信号机制,当前端向后端发起接口调用请求时,将会自动触发该请求的开始信号,进而使得后端可以自动捕捉到接口调用请求的开始时机。步骤S120,若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;否则继续执行步骤S110;本实施例中,若后端检测到接口调用请求的开始信号,则触发自定义中间件创建一自定义的线程共享变量,以供使用该线程共享变量,记录接口调用请求中携带的请求信息。本实施例中,为便于后端快速记录接口调用的请求信息,因此,通过自定义中间件创建一自定义的线程共享变量,通过将接口调用请求中携带的请求信息赋值给该变量,从而实现信息记录。其中,针对于多线程的前端应用或第三方应用,为了确保线程安全,使用threa.local方法以避免多线程之间发生信息混淆而使得记录的信息出现错误。可选的,在一实施例中,后端记录的接口调用请求的请求信息包括:调用方名称、调用方IP地址、调用接口名称、请求时间以及请求内容。后端基于上述信息,不仅可对后端性能进行监控,并且还可以分析用户的访问偏好或者访问异常,从而了解用户行为,优化或改进后端性能,进而提升用户使用体验。步骤S130,检测当前是否存在所述接口调用请求的结束信号或异常信号;本实施例中,基于django框架的信号机制,当接口调用请求结束或发生异常时,同样将会自动触发该请求的结束信号或异常信号,进而使得后端可以自动捕捉到接口调用请求结束时机或者中断时机。其中,当接口调用请求发生异常时,将会导致连接中断和请求失效。步骤S140,若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中,否则继续执行步骤S130。本实施例中,若检测到接口调用请求的结束信号或异常信号,则从线程共享变量中读取到记录的请求信息,并构建插入数据库的表格字段,进而将前端接口调用请求的请求信息保存到数据库中。本实施例中,后端采用django框架的信号机制来监控前端发起的接口调用请求,并获取前端接口调用中的请求信息,进而使得后端可以直接获取到前端接口调用的请求信息。另外,由于后端采用django框架,因而即使前端使用其他技术框架也不会影响后端记录接口调用的请求信息,解决了前后端分离框架中后端无法直接获取前端接口调用的请求信息的问题。此外,本实施例还进一步降低了后端获取接口调用请求信息时的系统开销。参照图3,图3为本发明基于django框架的接口调用记录方法第二实施例的流程示意图。基于上述实施例,本实施例中,在上述步骤S110之前,还包括:步骤S210,设置自定义中间件以及各接口调用请求对应的信号处理函数,并将各信号处理函数与对应信号进行绑定;本实施例中,django框架支持中间件自定义,因此,为实现接口调用记录功能,需要预先自定义中间件,具体自定义中间件中的函数方法,以通过该自定义中间件中的函数创建一自定义线程共享变量。此外,django框架还支持信号函数自定义,在django框架下内置有如下请求信号requestsignals:1request_started,请求开始信号,其在请求到来时自动触发;2request_finished,请求结束信号,其在请求结束时自动触发;3got_request_exception,请求异常信号,其在请求异常时自动触发。本实施例中只需自定义各信号处理函数即可,并将各信号处理函数与对应信号进行绑定。通过信号处理函数以记录和保存接口调用请求中携带的请求信息。步骤S220,将自定义中间件以及各信号处理函数注册到本地配置文件中,其中,所述信号包括:接口调用请求的开始信号、结束信号以及异常信号。本实施例中,为实现对接口调用请求信息的自动记录,因此,基于django框架的中间件与信号机制相结合的方法来进行用户活动记录,因此,在后端自定义中间件以及自定义信号处理函数,并将信号处理函数与对应的信号进行绑定,比如将预先自定义的不同信号处理函数与对应的request_started信号、Request_fineshed信号和got_request_exception信号分别进行绑定,最后再将自定义中间件以及各信号处理函数注册到后端系统的配置文件中。当后端系统启动时将自动加载配置文件,从而实现对接口调用请求信息的自动记录。进一步地,在本发明基于django框架的接口调用记录方法一实施例中,上述步骤S120具体包括:若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,并触发执行与所述开始信号绑定的信号处理函数。本实施例中,基于django框架的MVC模型机制,当发生接口调用请求时,会触发自定义中间件创建一自定义线程共享变量,同时还自动触发接口调用请求的开始信号,通过信号机制触发执行与开始信号绑定的信号处理函数。本实施例中,通过执行与接口调用请求的开始信号绑定的信号处理函数,以执行以下操作:1检测当前接口调用请求是否采用post方法;2若当前接口调用请求采用post方法,则将通过post方法提交的请求信息拷贝到所述线程共享变量中。本实施例中,当检测到接口调用请求的开始信号时,触发执行开始信号对应绑定的信号处理函数,通过该信号处理函数,判断调用方法是否为post方法,若不是直接跳过,若是post方法,则将通过post方法提交的请求信息拷贝到所述线程共享变量中。本实施例中,整个请求信息的记录过程由基于django框架的后端系统自动完成检测与记录,实现了后端可以直接获取到接口调用的请求信息,同时由于采用Django框架自带的信号机制进行请求消息记录,因而也相应降低了后端系统的开销。进一步地,在本发明基于django框架的接口调用记录方法一实施例中,上述步骤S140具体包括:若当前存在所述接口调用请求的结束信号,则触发执行与所述结束信号绑定的信号处理函数;若当前存在所述接口调用请求的异常信号,则触发执行与所述异常信号绑定的信号处理函数;本实施例中,当接口调用请求结束或发生异常时,会自动触发结束信号或异常信号,进而触发执行与结束信号或异常信号绑定的信号处理函数执行相关处理。本实施例中,通过执行与所述结束号或所述异常信号绑定的信号处理函数,以执行以下操作:1从所述线程共享变量中读取请求信息;2将所述请求信息作为用户活动信息并按照预置字段格式保存到所述数据库中。本实施例中,当检测到接口调用请求的结束信号或异常信号时,触发执行结束信号或异常信号对应绑定的信号处理函数,通过该信号处理函数,先从自定义的线程共享变量中读取预先记录的请求信息,然后再将请求信息作为用户活动信息并按照预置字段格式保存到数据库中。本实施例中,整个请求信息的记录和保存过程都由基于django框架的后端系统自动完成检测、记录与保存,实现了后端可以直接获取到接口调用的请求信息,同时由于采用Django框架自带的信号机制进行请求消息记录,因而也相应降低了后端系统的开销。参照图4,图4为本发明基于django框架的接口调用记录方法第三实施例的流程示意图。基于上述实施例,本实施例中,在上述步骤S140之后,还包括:步骤S310,创建数据加工任务,并配置数据加工方式与数据加工字段;本实施例中,通过创建并配置数据加工任务的方式,将数据加工方式和数据的数据加工字段进行绑定,比如通过第三方或插件实现数据加工任务,第三方或插件只对绑定的数据加工字段对应的原始数据进行统计处理。数据加工方式是指以何种方式来加工原始数据,比如统计总和、统计均值等。数据加工字段具体指存储到数据库中原始数据所在数据表的表字段。记录的请求信息作为原始数据以数据表形式存储在数据库中。例如,不同的接口调用方或不同的调用接口名称对应一张数据表,每一张数据表包含多个数据字段,比如字段名称为调用方名称、调用方IP地址、调用接口名称、请求时间以及请求内容等。步骤S320,执行所述数据加工任务,以基于所述数据加工字段,从所述数据库中读取对应原始数据,以及调用与所述数据加工方式对应的数据加工插件对所述原始数据进行加工,得到加工数据并存入所述数据库中。本实施例中,在执行数据加工任务时,先基于配置的数据加工字段,从数据库中读取对应的原始数据,然后再调用与指定的数据加工方式对应的数据加工插件对原始数据进行加工,并得到对应的加工数据。例如,统计同一接口在同一时间段内的调用次数、统计同一IP地址调用接口的次数等。另外,数据加工插件对原始数据进行逻辑加工。比如将接口调用时间9:05、10:10、10:38加工为接口调用时间段9:00~11:00,将调用接口名称A、B加工为访问业务类型1,将调用接口名称E、F加工为访问业务类型2。需要说明的是,该加工数据实质为中间数据而并非用户看到的最终数据,因而需要将加工数据再次存入数据库中,以待进一步处理。本实施例将对数据库中存储的原始请求信息的统计分析方法封装成数据加工插件,并且数据加工插件只负责根据设置的加工方式对数据进行加工处理而不识别数据的具体意义,因而与接口调用方无关。后端只需通过配置数据加工任务的数据加工方式而将数据加工插件与对应数据加工字段进行绑定,进而实现了数据数据加工方式与接口调用方的解耦,保证了后端运行的独立性与稳定性。参照图5,图5为本发明基于django框架的接口调用记录方法第四实施例的流程示意图。基于上述实施例,本实施例中,在上述步骤S320之后,还包括:步骤S330,创建数据报表,并配置所述数据报表对应的数据源、统计时间范围、统计对象以及数据展现方式;本实施例中,为便于后端了解前端用户行为情况,后端还进一步对采集的数据进行报表展现,以供通过报表分析前端用户的行为。本实施例中,数据源是指数据报表的数据来源,具体为执行数据加工任务后所生成的加工数据;统计时间范围是指请求时间对应的时间范围;统计对象具体包括调用方名称、调用方IP地址、调用接口名称;数据展现方式用于规定数据的包装方式和输出数据格式,具体指数据以什么方式或维度来展现,比如按照趋势展现、按照设备排名展现等,具体通过对应的插件实现数据包装并转换为特定格式输出。步骤S340,以所述统计时间范围与统计对象为数据筛选条件,从所述数据库中读取与所述数据源对应且符合所述数据筛选条件的加工数据;步骤S350,调用与所述数据展现方式对应的数据展现插件对读取的加工数据进行包装,得到报表数据并输出展示。本实施例中,后端通过以配置数据报表的方式对数据进行展示,数据报表以数据加工任务的结果为数据源,通过时间范围和具体的统计对象来筛选数据,然后通过数据展现方式对筛选数据进行包装输出,从而便于管理人员直观了解统计对象的情况。本实施例中,后端还支持将生成的报表数据以指定格式比如pdf、excel等导出而便于进行其他运用。本发明还提供一种基于django框架的接口调用记录装置。参照图6,图6为本发明基于django框架的接口调用记录装置一实施例的功能模块示意图。本实施例中,基于django框架的接口调用记录装置包括:检测模块10,用于检测当前是否存在前端发起的接口调用请求的开始信号;以及检测当前是否存在所述接口调用请求的结束信号或异常信号;记录模块20,用于若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;保存模块30,用于若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。基于与上述本发明基于django框架的接口调用记录方法相同的实施例说明内容,因此本实施例对基于django框架的接口调用记录装置的实施例内容不做过多赘述。本实施例中,接口调用记录装置采用django框架的信号机制来监控前端发起的接口调用请求,并获取前端接口调用中的请求信息,进而使得接口调用记录装置可以直接获取到前端接口调用的请求信息。另外,由于接口调用记录装置采用django框架,因而即使前端使用其他技术框架也不会影响后端记录接口调用的请求信息,解决了前后端分离框架中后端无法直接获取前端接口调用的请求信息的问题。此外,本实施例还进一步降低了后端获取接口调用请求信息时的系统开销。本发明还提供一种计算机可读存储介质。本实施例中,所述计算机可读存储介质上存储有接口调用记录程序,所述接口调用记录程序被处理器执行时实现如上述任一项实施例中所述的基于django框架的接口调用记录方法的步骤。其中,接口调用记录程序被处理器执行时所实现的方法可参照本发明基于django框架的接口调用记录方法的各个实施例,因此不再过多赘述。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如ROMRAM中,包括若干指令用以使得一台终端可以是手机,计算机,服务器或者网络设备等执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

权利要求:1.一种基于django框架的接口调用记录方法,其特征在于,所述基于django框架的接口调用记录方法包括以下步骤:检测当前是否存在前端发起的接口调用请求的开始信号;若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;检测当前是否存在所述接口调用请求的结束信号或异常信号;若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。2.如权利要求1所述的基于django框架的接口调用记录方法,其特征在于,在所述检测当前是否存在前端发起的接口调用请求的开始信号的步骤之前,还包括:设置自定义中间件以及各接口调用请求对应的信号处理函数,并将各信号处理函数与对应信号进行绑定;将自定义中间件以及各信号处理函数注册到本地配置文件中,其中,所述信号包括:接口调用请求的开始信号、结束信号以及异常信号。3.如权利要求2所述的基于django框架的接口调用记录方法,其特征在于,所述若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息包括:若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,并触发执行与所述开始信号绑定的信号处理函数;其中,通过执行与所述开始信号绑定的信号处理函数,以执行以下操作:检测当前接口调用请求是否采用post方法;若是,则将通过post方法提交的请求信息拷贝到所述线程共享变量中。4.如权利要求3所述的基于django框架的接口调用记录方法,其特征在于,所述若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中包括:若当前存在所述接口调用请求的结束信号,则触发执行与所述结束信号绑定的信号处理函数;若当前存在所述接口调用请求的异常信号,则触发执行与所述异常信号绑定的信号处理函数;其中,通过执行与所述结束号或所述异常信号绑定的信号处理函数,以执行以下操作:从所述线程共享变量中读取请求信息;将所述请求信息作为用户活动信息并按照预置字段格式保存到所述数据库中。5.如权利要求1-4中所述的基于django框架的接口调用记录方法,其特征在于,所述请求信息包括:调用方名称、调用方IP地址、调用接口名称、请求时间以及请求内容。6.如权利要求5所述的基于django框架的接口调用记录方法,其特征在于,在所述若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中的步骤之后,还包括:创建数据加工任务,并配置数据加工方式与数据加工字段;执行所述数据加工任务,以基于所述数据加工字段,从所述数据库中读取对应原始数据,以及调用与所述数据加工方式对应的数据加工插件对所述原始数据进行加工,得到加工数据并存入所述数据库中。7.如权利要求6所述的基于django框架的接口调用记录方法,其特征在于,在所述执行所述数据加工任务的步骤之后,还包括:创建数据报表,并配置所述数据报表对应的数据源、统计时间范围、统计对象以及数据展现方式;以所述统计时间范围与统计对象为数据筛选条件,从所述数据库中读取与所述数据源对应且符合所述数据筛选条件的加工数据;调用与所述数据展现方式对应的数据展现插件对读取的加工数据进行包装,得到报表数据并输出展示。8.一种基于django框架的接口调用记录装置,其特征在于,所述基于django框架的接口调用记录装置包括:检测模块,用于检测当前是否存在前端发起的接口调用请求的开始信号;以及检测当前是否存在所述接口调用请求的结束信号或异常信号;记录模块,用于若当前存在所述接口调用请求的开始信号,则触发自定义中间件创建一自定义线程共享变量,以记录接口调用请求中携带的请求信息;保存模块,用于若当前存在所述接口调用请求的结束信号或异常信号,则获取所述线程共享变量记录的所述请求信息并保存到预置数据库中。9.一种基于django框架的接口调用记录设备,其特征在于,所述基于django框架的接口调用记录设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的接口调用记录程序,所述接口调用记录程序被所述处理器执行时实现如权利要求1-7中任一项所述的基于django框架的接口调用记录方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有接口调用记录程序,所述接口调用记录程序被处理器执行时实现如权利要求1-7中任一项所述的基于django框架的接口调用记录方法的步骤。

百度查询: 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。