用于动态验证应用程序接口修改请求的交互式用户界面的方法和系统与流程

文档序号:17727566发布日期:2019-05-22 02:37阅读:187来源:国知局
用于动态验证应用程序接口修改请求的交互式用户界面的方法和系统与流程

本pct国际申请要求于2016年7月12日申请的美国非临时专利申请第15/208,442号的优先权,其公开内容以全文引用的方式并入本文中。

本发明通常涉及数据元素验证。具体地说,本发明的各方面涉及动态验证部分完成的应用程序编程接口(applicationprogramminginterface,api)的数据元素。



背景技术:

在现代软件设计中,就算不是关键方面,与各种数据或服务提供商的互连性也是非常重要的。凭借因特网的便利性和开放性,软件程序产品在与其它装置或程序无广泛连接的情况下将不再可操作。在编程电平下,软件程序产品经由应用程序接口(api)与彼此进行通信,以在不同软件程序产品之间适当地,并且有时安全地交换数据。软件开发人员有时会创建特殊工具或“插件”,以利用经由api传达的数据向用户提供特殊特征。这些工具或“插件”通常需要创建为api所接受的对api的交易请求,以便充分利用api的功能。

因此,api设计师频繁发布描述api结构的手册、论文、教程。例如,图1和2中所示的api手册、论文,或教程通常列出在一列或一侧202中被api所接受的特定属性的名称,同时另一侧204示出实例。类似地,图2示出了窗口202和204中的另一种api教程,描述了开发人员将如何为api创建适当配置的请求或编程指令。图3a示出了另一种现有技术用户界面方法,其中用户请求窗格352被设置或配置成显示在响应窗格354上方。

因此,在开始对所需的api请求或指令进行译码之前,软件开发人员可以仔细检查这些静态列表、表格、图示、教程、实例等。

但是,当开发人员准备好将他们的请求或指令提交到api以确定请求或指令是否有效时,会出现长期存在的问题。很多时候,开发人员需要在提交前完成全部且完整的请求或指令,但验证响应不能提供除“成功”或“失败”反馈之外的详细报告。

如果响应是“失败”,这要求开发人员返回绘图板,尝试弄清其请求或指令的哪一部分失败了。例如,他们会再次查看api手册或教程,以确保他们的请求或指令符合所需的语法、属性限制、参数大小等。一旦他们再次确认请求正确,他们将再次提交以进行验证。此过程自身将进行重复,直到验证响应指示“成功”为止。



技术实现要素:

本发明的各方面可以包含用户界面,用于将至少一部分编程代码动态验证为应用程序接口(api)修改请求。在一个实施例中,用户界面包含图形用户界面(graphicaluserinterface,gui)。凭借将编程代码的一部分验证为应用程序接口(api)请求的能力,本发明的实施例可以显著减少开发人员在验证api的请求或指令方面的时间。此外,在不需要或独立于验证api的域知识的情况下,可以执行本发明的各方面的验证过程。

附图说明

通过参考结合附图考虑的详细描述可更好地理解本发明。图中的部件可能未必按比例绘制,而是侧重于示出本发明的原理。在图中,相同附图标号贯穿不同视图标示对应的部分。

图1、2,和3a示出现有技术实践;

图3b示出根据本发明的一个实施例的用于将编程代码的至少一部分动态验证为应用程序接口(api)请求的示例性用户界面;

图3c示出根据本发明的一个实施例的用于将编程代码的至少一部分动态验证为应用程序接口(api)请求的另一实施例;

图4示出根据本发明的一个实施例的将编程代码的至少一部分动态验证为应用程序接口(api)请求的流程图;

图5是适于本发明的各方面的便携式计算装置的图解;以及

图6是适于本发明的各方面的服务器计算装置的图解。

所属领域的一般技术人员可了解,为了简单和清晰起见而示出图中的元件,因此并未示出所有的连接和选项,以免模糊本发明的各方面。例如,可能通常不描绘在商业上可行的实施例中有用或必要的常见但很好理解的元件,以便有助于不大受妨碍地查看本公开的这些各种实施例。应进一步了解,可以特定的发生次序描述或描绘某些动作和/或步骤,而所属领域的技术人员应理解,实际上不要求此类有关顺序的特异性。还应理解,本文中所用的术语和表达可相对于其对应的相应查询和研究领域来进行定义,除非本文中另外阐述了特定含义。

具体实施方式

现可参考附图来更充分地描述本发明,附图形成本发明的一部分且以图解方式示出具体示范性实施例,本发明可通过所述实施例实践。可呈现这些图解和示范性实施例,且应理解,本公开是一个或多个发明的原理的范例,且可能并非意在将任何一个发明限制于所示出的实施例。本发明可以许多不同形式体现,且不应被理解为限于本文中阐述的实施例;实际上,提供这些实施例以使本公开透彻和完整,且将使本发明的范围完全传达到所属领域的技术人员。此外,本发明可体现为方法、系统、计算机可读媒体、设备或装置。因此,本发明可采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。因此,以下详细描述不应被视为是限制性的。

现在参考图3b,根据本发明的一个实施例的用于将编程代码的至少一部分动态验证为应用程序接口(api)请求的示例性用户界面300。在一个实施例中,用户界面300可以是图形用户界面(gui)。在gui的实施例中,用户(未示出)可以使用指示装置,例如鼠标来与用户界面300进行交互。在另一实例中,如果用户界面300可以显示在触敏的显示装置上,那么用户可以使用用户的手指或手写笔装置来与显示装置进行交互,以操作用户界面300。

在一个实施例中,用户界面300包含第一窗口区域302和第二窗口区域304。在一个实施例中,第一窗口区域302可以进一步划分成第一窗格302a和第二窗格302b。应理解,根据用户界面300的不同设计偏好,第一窗口区域302可以在不脱离本发明的范围或精神的情况下配置成子区段。例如,将第一窗口区域302与两个不同窗口区域,而不是第一窗格302a和第二窗格302b分离的设计选择仅仅是设计选择,而且不会产生功能差异。

在一个实例中,第一窗口区域302可以显示与第一窗格302a中的api架构或结构相关联的多个数据定义。例如,第一窗格302a可以显示api结构内的区段的列表。然后,响应于一个区段,例如图3b中所示的区段“支付api”314的选择,第二窗格302b可以进一步显示所述区段的细节。出于说明目的而不是限制,第二窗格302b可以显示以下信息:

货币

字符串=用于交易的货币

支付:

cardnumber

字符串=信用卡号

cardexpirationmonth

字符串=两位数到期月份

cardexpirationyear

字符串=四位数到期年份

cardtype

字符串=卡类型

应理解,第一窗格302a和/或第二窗格302b可以提供用户可以向上移动和向下移动第一窗格302a和/或第二窗格302b的滚动条控件,以查看可被显示装置框架遮蔽的内容。

在另一个实施例中,在第一窗口区域302中显示的内容可以是静态的。第一窗口区域302中的内容都是可用的,因为它们未经更新。用户可以选择第一窗格302a,例如标题为“支付api”314的区段中所列项目中的一个或多个,以获得要在第二窗格302b中示出的选择的数据定义。在当前实例中,“支付api”314包含参数数目、参数的数据类型、参数描述等的数据定义。除非第一窗口区域302的整个内容(例如,api结构或用户手册)接收更新,可以通知用户所述更新,否则第一窗格302a和第二窗格302b通常不会更改内容。

仍然参考图3b,在一个实施例中,第二窗口区域304可以基于第一窗口区域302以编程代码的形式显示附加信息。在一个实例中,响应于第二窗格302b中项目的选择,呈编程代码格式的一组可配置元素312显示在第二窗口区域304中。例如,响应于第二窗格302b中的“卡号”的选择,第二窗口区域304可以显示可配置元素312。在图3b中所示的实例中,用户可以提供可由第二窗口区域304接收的输入,以在第二窗口区域304中的可配置元素312中设置“4234090430233320”。在一个实施例中,第二窗口区域304中所示的编程代码可以符合xml、javascript、json、restapi/soap/webapi等的规范。应理解,在不偏离本发明的范围或精神的情况下,可以使用其它类型的编程规范。

本发明的实施例可以提供工具或用户界面,以高效辅助软件开发人员更好地验证其提交给api的请求。每个api可包含api架构(父/子节点关系)、特定数据类型、到期日期格式、布尔类型值(例如,是0还是1、真或假、是或否),可选字段即使可用但也可能不隐藏,或数据的特征或相依性可能隐藏在手册/文档中,等。除非开发人员花费大量时间来仔细讨论或探索所有的可能性,否则开发人员在构建请求时不能验证api请求中的数据则效率会非常低。

在一个实施例中,第二窗口区域304可以将一个或多个可配置元素显示为第一窗口区域302中所选的数据定义的函数。例如,在显示的一个或多个可配置元素内,其中的一个或多个可以是所需或必要的参数。因此,在一个实施例中,这些所需参数可能变灰,并且自动填充有有效数据。在另一个实施例中,可配置元素中的其它可选参数可以突出显示以供用户选择,从而待在请求中进行验证。

用户界面300还可以包含动态请求显示区域306,其用于接收来自用户的指令以提交第二窗口区域304中示出的编程代码。在一个实施例中,动态请求显示区域306包含可供用户选择的发送请求按钮308和复位按钮310。此外,动态请求显示区域306还可以在用户选择发送请求后立即显示响应。例如,如果第二窗口区域304中的编程代码已经过验证,那么动态请求显示区域306可在短暂的延迟后或无显著延迟情况下几乎立即显示“成功”警报/通知。另一方面,如果第二窗口区域304中的编程代码未被验证,那么动态请求显示区域306可以在其中显示“失败”。本发明的各方面可以动态地显示响应(例如,响应于经提交以进行验证的编程代码,而不是在第二窗口区域304中所示的整组编程代码)。

在另一个实施例中,用户可能不需要选择发送请求按钮308来提交编程代码。例如,用户可以按键盘上的回车或返回以执行提交动作。在另一个实施例中,只要用户完成修改第二窗口区域304中示出的可配置元素时,就可提交编程代码以进行验证。

还预期用户可以通过在第一窗口区域302中选择更多数据定义而将附加的编程代码与可配置元素添加到第二窗口区域304。然而,不同于现有技术,第二窗口区域304中的编程代码不需要是对api的完整请求。提交以供验证的编程代码可能是部分完整或不完整的请求。

参考图3c中的又一个实施例,gui380示出了本发明的另一个方面。gui380可以包含窗格382,其可以包含一个或多个参数或配置设置以作为对api的请求的一部分。在一个实例中,作为请求的一部分,一些参数是所需或必要的。例如,如图3c所示,388可以指向api请求的一组所需或必要参数、配置设置或字段,使得用户能够进行控制或更改。图3c可以使用以较浅灰色显示这些设置或字段,以表示此类指示。应理解,可以实施其它显示方法,如在所需字段或设置旁边放置一个“*”,或者每当由用户控制的光标指定字段或设置时,提供悬停球体。

另一方面,存在可由用户配置、自定义或控制的字段或设置。在本实例中,390指向此类参数、字段或设置:“卡代码”。用户可以选择参数390旁边的复选框。在选择复选框之后,对应的编程代码可能会出现在窗格384中以进行认证或验证。窗格386可以显示验证或认证的结果。如上所述,可以实时或动态地响应于选择发送按钮而显示认证或验证的响应。

在另一个实施例中,用户可以熟悉编程语言译码语法,使得用户可便于在图3c中的窗格384中或图3b中的窗格304中直接输入代码。在这种实施例中,将自动选择、突出显示,或以其它方式指出图3c中的窗格382或图3b中的窗格302a或302b中对应的一个或多个参数、配置设置或字段以指示用户已选择或激活此类参数、设置或字段。

现在参考图4,流程图示出根据本发明的一个实施例的用于将编程代码的至少一部分动态验证为应用程序接口(api)请求的方法。

在一个实例中,所述方法在402处可以在显示器上显示包含静态数据定义的第一窗口区域。数据定义可以包含可操作地提交到api的请求的一个或多个可配置元素。在404处,所述方法还可包含接收第一窗口区域中第一静态数据定义的选择。在一个实例中,第一静态数据定义可以包含第一组可配置元素。在406处,所述方法可以在显示器上显示第二窗口区域,其包含响应于所选的第一静态数据定义而结构化的编程代码。在一个实例中,编程代码可以与第一组可配置元素一起显示。在408处,在一个实施例中,所述方法可以接收显示器上的第二窗口区域中来自用户的第一输入,以用于修改第一组可配置元素。

在410处,所述方法可以进一步接收动态请求显示区域中来自用户的指令。在412处,响应于从用户接收到的指令,所述方法可以将编程代码提交到api以进行验证。在一个实例中,提交的编程代码作为由api处理的交易请求并不完整。换句话说,提交的编程代码不是现有技术中提交的完整或结构完善的请求。本发明的实施例可以实现对作为全部或完整提交的一部分使用的编程代码的一部分(partial/portion)的验证。实现这种性质的提交可为开发人员提供更高效的开发例程。在另一个实施例中,在不需要或独立于验证api的域知识的情况下,可以执行本发明的各方面的验证过程。

在一个实施例中,在具有适当的域知识的情况下,用户可易于为所述域的api设计请求、例程、功能等。然而,在不理解api悖论的情况下,api的此类请求的质量可能不太高。本发明的实施例可评估所提交以进行验证的单个编程代码集,而不需要用户了解api的深入域知识。本发明的特征可使得实习生或初学者能够帮助开发人员中的其它主要团队成员快速而且准确地开发和部署api请求。

在414处,所述方法进一步可以在动态请求显示区域中显示响应。在一个实施例中,在提交编程代码之后,可以提供响应而无显著延迟。在另一个实施例中,可以立即提供响应。在另一个实施例中,响应可以指示提交的编程代码是对api有效还是提交的编程代码对api无效。

图5可以是便携式计算装置801的高级图解,所述便携式计算装置与远程计算装置841通信,但应用程序可通过多种方式存储和访问。另外,应用程序可通过多种方式,例如从应用程序商店、从网站、从商店wi-fi系统等获得。可存在各种版本的应用程序以利用不同计算装置、不同语言和不同api平台的益处。

在一个实施例中,便携式计算装置801可以是使用电池等便携式电源855操作的移动装置112。便携式计算装置801还可具有显示器802,所述显示器可以是或可以不是触敏显示器。更具体地,显示器802可具有电容传感器,例如,可用于向便携式计算装置801提供输入数据的电容传感器。在其它实施例中,例如箭头、滚轮、键盘等输入板804可用于向便携式计算装置801提供输入。另外,便携式计算装置801可具有可接受和存储口头数据的麦克风806、用以接受图像的相机808和用以传送声音的扬声器810。

便携式计算装置801能够与计算装置841或组成计算装置云811的多个计算装置841进行通信。便携式计算装置801能够通过多种方式进行通信。在一些实施例中,通信可以是有线的,例如通过以太网线缆、usb线缆或rj6线缆进行通信。在其它实施例中,通信可以是无线的,例如通过wi-fi(802.11标准)、蓝牙、蜂窝通信或近场通信装置进行通信。通信可以针对计算装置841,或可通过例如蜂窝服务的通信网络102、通过因特网、通过专用网、通过蓝牙等进行。图6可以是构成便携式计算装置801的物理元件的简化图解,且图6可以是构成服务器型计算装置841的物理元件的简化图解。

图5可以是根据作为系统的部分进行物理配置的示例便携式计算装置801。便携式计算装置801可具有根据计算机可执行指令进行物理配置的处理器850。其可具有便携式电源855,例如可以再充电的电池。其还可具有声音和视频模块860,其辅助显示视频和声音且可在不使用时关闭以节约电力和电池寿命。便携式计算装置801还可具有易失性存储器865和非易失性存储器870。其可具有可以是单独电路或可以是处理器850的部分的gps功能880。还可以存在输入/输出总线875,所述输入/输出总线将数据传送往返于各种用户输入装置,例如麦克风806、相机808和其它输入,例如,输入板804、显示器802和扬声器810等。其还可以通过无线或有线装置来控制与网络的通信。当然,这只是便携式计算装置801的一个实施例,而便携式计算装置801的数量和类型仅受到想象力的限制。

系统所带来的是更好的信息可在销售点提供给用户。信息可以是用户特定的,且可以被要求超过相关性阈值。因此,用户可做出更好的知情决策。所述系统不仅加速过程,还使用计算系统来达成更好的结果。

构成远程计算装置841的物理元件可进一步在图6中示出。在高级别下,计算装置841可包含数字存储装置,例如磁盘、光盘、闪存、非易失性存储装置等。结构化数据可存储在数字存储装置中,例如存储在数据库中。服务器841可具有根据计算机可执行指令进行物理配置的处理器1000。其还可具有声音和视频模块1005,其辅助显示视频和声音且可在不使用时关闭以节约电力和电池寿命。服务器841还可具有易失性存储器1010和非易失性存储器1015。

数据库1025可存储在存储器1010或1015中,或者可以是分开的。数据库1025还可以是计算装置841的云的一部分,且可跨越多个计算装置841以分布方式存储。还可以存在输入/输出总线1020,所述输入/输出总线将数据传送往返于各种用户输入装置,例如麦克风806,相机808,例如输入板804、显示器802和扬声器810等输入。输入/输出总线1020还可以通过无线或有线装置来控制与网络的通信。在一些实施例中,应用程序可位于本地计算装置801上,且在其它实施例中,应用程序可以是远程的841。当然,这只是服务器841的一个实施例,而便携式计算装置841的数量和类型仅受到想象力的限制。

要求保护的系统和方法可解决若干技术问题和挑战,已描述其中的一些问题和挑战。目前,在网络上输入潜在的敏感数据会使用户紧张,使得可能失去一次销售机会或可能接收不到省钱或省时的提示或优惠券。通过使用支付网络等专有网络发送潜在敏感数据,安全性可能更高,且用户可能更愿意加入附加的有益计划。类似地,对于一些用户来说,将数据从一个支付系统移到另一忠诚度系统感觉会有风险,但通过使用专有的受信任网络,可以更可信的方式传达数据。另外,格式化数据以及以多种附加程序可理解的方式传达数据是所述系统和方法已解决的技术挑战或问题。

本文描述的用户装置、计算机和服务器可以是:除了其它元件外还可具有(例如来自intelcorporation、amd或motorola)的微处理器;易失性和非易失性存储器;一个或多个大容量存储装置(即,硬盘驱动器);各种用户输入装置,例如鼠标、键盘或麦克风;以及视频显示系统的通用计算机。本文描述的用户装置、计算机和服务器可在许多操作系统中的任何一个上运行,包含但不限于windows、unix、linux、macos或windows(xp、vista等)。然而,预期任何合适的操作系统均可用于本发明。服务器可以是网络服务器群集,其各自可基于linux并由负载均衡器支持,所述负载均衡器基于可用服务器的当前请求负载来决定网络服务器群集中的哪一个应处理请求。

本文描述的用户装置、计算机和服务器可经由网络通信,所述网络包含因特网、wan、lan、wi-fi、(现在已知的或在未来发明的)其它计算机网络和/或前述网络的任何组合。所属领域的技术人员在熟悉本说明书、附图和权利要求书后应理解,网络可通过有线和无线渠道的任何组合来连接各个部件,有线和无线渠道包含铜线、光纤、微波以及其它形式的射频、电通信技术和/或光学通信技术。还应理解,任何网络可通过不同的方式连接到任何其它网络。系统中计算机与服务器之间的互连是实例。本文描述的任何装置可经由一个或多个网络与任何其它装置通信。

在一个实施例中,远程计算装置841和便携式计算装置801可以执行图4中所示的示例性方法。

实例实施例可包含超出所示装置和网络的附加装置和网络。此外,描述为由一个装置执行的功能可分布且由两个或更多个装置执行。多个装置也可组合成单个装置,其可执行组合的装置的功能。

本文所描述的各种参与者和元件可操作一个或多个计算机设备以促进本文所描述的功能。上述图中的任何元件,包含任何服务器、用户装置或数据库可使用任何合适数目的子系统来促进本文所描述的功能。

本申请中描述的任何软件部件或功能可实施为可由至少一个处理器使用任何合适的计算机语言(例如java、c++或perl)、使用例如常规的或面向对象的技术执行的软件代码或计算机可读指令。

软件代码可作为一系列指令或命令存储在非暂时性计算机可读媒体上,所述非暂时性计算机可读媒体例如随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器或软盘等磁性媒体或cd-rom等光学媒体。任何此类计算机可读媒体可驻存在单个计算设备上或内部,且可存在于系统或网络内的不同计算设备上或内部。

可理解,如上文所描述的本发明可通过使用模块或集成方式的计算机软件以控制逻辑的形式实施。基于本文中提供的公开内容和教示,所属领域的一般技术人员可知晓并了解其它方式和/或方法以使用硬件、软件或硬件与软件的组合来实施本发明。

以上描述是说明性的而不是限制性的。在所属领域的技术人员阅读了本公开之后,本发明的许多变化将变得显而易见。因此,本发明的范围不应参考上文的描述来确定,而是应参考待决的权利要求及其完整范围或等效物来确定。

在不偏离本发明的范围的情况下,任何实施例的一个或多个特征可与任何其它实施例的一个或多个特征组合。除非明确指示有相反的意思,否则“一”或“所述”的叙述旨在表示“一个或多个”。除非明确指示有相反的意思,否则“和/或”的叙述旨在表示所述术语的最具包含性的意义。

本发明系统的一个或多个元件可被要求保护为实现特定功能的构件。在使用此类手段加功能元件来描述要求保护的系统的某些元件的情况下,可查阅本说明书、附图和权利要求书的所属领域的技术人员应理解,对应的结构是通用计算机、处理器或微处理器,所述微处理器(视具体情况)被编程为使用在没有特殊编程的任何通用计算机中存在的功能来执行特别叙述的功能和/或通过实现一种或多种算法来实现所述功能。如所属领域的技术人员应理解,算法可在本公开中表达为数学公式、流程图、叙述式和/或向所属领域的技术人员提供足够的结构以实施所述过程和其等同物的任何其它方式。

虽然本公开可以许多不同的形式体现,但附图和讨论的呈现应理解为,本公开是一个或多个发明的原理的范例,并不意图将任何一个发明限制于所示实施例。

本公开为上文所描述的长期需要提供解决方案。具体地说,本文所述的系统和方法可以被配置用于改善与编辑,撰写,验证,或提交上文所描述的api请求相关联的用户图形界面(gui)。所属领域的技术人员将易于想到上述系统和方法的其它优势和修改。因此,本公开在其更广方面并不限于上文示出和描述的具体细节、代表性系统和方法以及说明性实例。在不脱离本公开的范围或精神的情况下,可对上述说明书进行各种修改和变化,且希望本公开涵盖所有此类修改和变化,前提条件是它们在所附权利要求书和其等同物的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1