CN106105100B - 处理应用编程接口请求的方法和装置 - Google Patents

处理应用编程接口请求的方法和装置 Download PDF

Info

Publication number
CN106105100B
CN106105100B CN201580012556.5A CN201580012556A CN106105100B CN 106105100 B CN106105100 B CN 106105100B CN 201580012556 A CN201580012556 A CN 201580012556A CN 106105100 B CN106105100 B CN 106105100B
Authority
CN
China
Prior art keywords
api
request
component
key
executed
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.)
Expired - Fee Related
Application number
CN201580012556.5A
Other languages
English (en)
Other versions
CN106105100A (zh
Inventor
S·K·加迪帕蒂
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.)
Dtn Ltd
Original Assignee
Twc Patent Trust
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 Twc Patent Trust filed Critical Twc Patent Trust
Publication of CN106105100A publication Critical patent/CN106105100A/zh
Application granted granted Critical
Publication of CN106105100B publication Critical patent/CN106105100B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

处理应用编程接口请求的方法和装置。API网关设计用于处理对数据和服务的高容量的API请求,其中将相对大的负载返回给请求者。所述API网关包括“在线”组件,所述在线组件针对每个API请求,检查所述请求中的信息以按API ID和产品密钥增加API使用计数。所述使用信息周期性地压入出站消息队列,之后被填充到数据库中。“离线”组件基于所述数据库中的信息确定客户是否已超出其预定配额。这个确定被压入另一消息队列,所述另一消息队列由所述在线组件周期性地读取以更新存储器内API ID、产品密钥和API有效标记值。因此,所述在线组件能够以低延时来服务于对数据的高容量的API请求。

Description

处理应用编程接口请求的方法和装置
技术领域
本发明涉及处理应用编程接口请求的方法和装置。
背景技术
数据和服务提供者越来越多采用应用编程接口(API)来将服务递送通过移动、云和web信道。虽然通过API来暴露和消耗这些服务变得更为容易,但是对暴露API的管理已成问题。例如,通过暴露API,提供者承担的任务包括控制对API的访问、出于货币化的目的计量API、节流API以使客户将不超出他们的配额、监视API延时和可用性、以及确保仅通过认证的用户访问API。另外,许多的提供者希望在线且近乎实时地报告使用分析、服务可用性度量和API延时统计。
通常,为了提供以上内容,常规API网关应用自顶向下方法计量客户的API请求的数量、提供服务认证并且在客户超出预定使用量时节流用量。这注重于通过常规API网关的计量、认证和节流而将延时引入每个请求中。因此,API管理系统内的常规API网关能够针对相对小的负载提供足够的吞吐量,但经证实,它在存在对相对大的负载的高容量的请求的环境下是有缺陷的。
发明内容
API网关设计用于处理对数据和服务的高容量的API请求,其中将相对大的负载返回给请求者。所述API网关包括“在线”组件,所述在线组件针对每个API请求,检查所述请求中的信息以按API ID和产品密钥增加API使用计数。所述使用信息周期性地压入出站消息队列,之后被填充到数据库中。“离线”组件基于所述数据库中的信息确定客户是否已超出其预定配额。这个确定被压入另一消息队列,所述另一消息队列由所述在线组件周期性地读取以更新存储器内API ID、产品密钥和API有效标记值。因此,所述在线组件能够以低延时来服务于对数据的高容量的API请求,因为计量决策和节流决策由所述离线组件执行。
根据本发明,提供一种用于在API网关处接收和处理API请求的方法。所述方法可以包括:在计算设备上执行的第一组件处接收API请求;认证在所述API请求负载中包含的API密钥和密码摘要;更新API使用值;根据所述API密钥提供对API服务的访问;将所述API使用值周期性地压入消息队列中,所述消息队列是由所述计算设备上执行的第二组件处理;以及用所述第二组件提供的信息周期性地更新所述第一组件。
根据本发明的其他方面,提供一种包括处理器和存储器的装置,所述存储器存储由所述处理器执行的指令。所述指令在执行时,将具有在所述存储器中执行的在线组件的应用编程接口(API)网关例示。所述在线组件接收统一资源标识符(URI)请求,并且基本上实时地解析所述URI请求,用以确定所述URI以及相关联的应用编程接口(API)密钥的有效性。所述API网关还可具有离线组件,所述离线组件从所述在线组件处接收信息,以便确定与所述URI请求关联的使用统计。所述在线组件可借助所述API网关来提供对所访问的API服务的访问控制以及认证,而所述离线组件可提供用于所述API服务的用量的计量和节流。
根据本发明的其他方面,提供一种方法,所述方法包括:监视对应用编程接口(API)服务的传入请求;接收来自用户的API请求;使用第一组件基本上实时地认证与所述请求关联的所述用户;根据所述认证,增加所述用户的API使用计数;使用第二组件周期性地确定(使用第二组件)所述用户的所述API使用计数是否高于预定阈值;以及如果所述认证成功,将所述请求传送至所述API服务。
上述内容是概述并因此必然包含细节的简化、概括和省略。本领域的那些技术人员将会了解,概述仅是说明性的,而不旨在以任何方式来限制。
附图说明
附图中的组件不一定相对于彼此成比例绘制。在全部若干视图中,相同元件符号指示对应部分。
图1是API管理系统的高级框图;
图2是示出图1的API管理系统的API网关的另外细节的框图;
图3示出图1的API管理系统提供的功能和特征的相对优先级;
图4是图1的API网关执行的示例操作流程;
图5示出在API网关内通过电晕组件(corona component)202元件推送至核芯组件204的信息;
图6示出用于根据客户用量更新API有效标记的信息和进程;以及
图7示出可实施本发明的各个方面的示例性的计算环境
具体实施方式
综述
以下描述的是一种API管理系统,所述API管理系统包括API网关,所述API网关设计用于处理对数据和服务的高容量的API请求,其中将相对大的负载返回给请求者。如将描述,API网关包括“在线”组件,所述在线组件针对每个API请求,检查API ID、密钥、密码摘要和API有效标记。所述检查例如是在存储器内执行。在线组件根据API ID和产品密钥增加API使用计数。在线组件将API使用计数周期性地压入出站消息队列中,之后被填充到数据库中。
“离线”组件基于所述数据库中的信息确定客户是否已超出其预定配额。离线组件将使用信息以及其他更新放入入站队列中,所述入站队列由在线组件周期性地读取以更新存储器内API ID、产品密钥和API有效标记值。因此,认证以及访问控制的功能与计量和节流的确定是分开的,这使在线组件能够以低延时来服务于对数据的请求。
描述
参考图1,示出根据本发明的示例API管理系统100,所述API管理系统100包括API网关102、API入口104和API服务106。如以下所介绍,API网关102适于以低延时来服务于高容量API通信量以及相对大的API负载。如将从以下所了解,API网关102设计用于根据置于API管理系统100上的需求进行扩展。
图2更详细地示出API网关102的展示组件的框图。API网关102的组件包括电晕组件202、核芯组件204、输入端点206、化身(incarnation)服务208、外部服务210和消息队列212、214和216。电晕组件202是接收统一资源标识符(URI)请求并解析URI以执行对URI以及API密钥的有效性的检查的“在线组件”。“在线组件”用来表示电晕组件202基本上实时地操作,以便执行本文描述的功能和特征。电晕组件202维持有效API密钥,将它们与标记关联,并使用标记来施行配额分配,如图5所示以及在下文中更详细地论述。电晕组件202从URI中检索所述API密钥以及密码摘要,并且如果计算出的密码摘要等于所述URI中提供的密码摘要(即,API请求通过认证),那么将所述URI传送至API服务106。随后,电晕组件202按其存储器内的API密钥来增加API使用计数。根据以上内容,可使用基于存储器的处理最小化用户认证。
作为非限制性示例,API密钥可限定为<产品>/<组件>/<版本>。因此,客户可以发送URI中的产品密钥以及HTTP请求标头中的摘要/令牌。产品可以用单独API密钥或API ID组来识别。产品密钥针对账户或针对给定产品和客户选择的方案而生成。一个账户可以具有一个或多个产品密钥;然而,对于给定账户、产品ID和配额,可仅存在一个产品密钥。令牌可针对每个请求来计算。令牌生成算法的示例是:
sha256(共享_密码+x-摘要日期标头+URI从/直至但不包括)。令牌可在HTTP请求的x-令牌标头中发送至电晕组件202,这在下文描述。根据本发明的各个方面,每个产品密钥可映射至共享密码。
根据本发明的各个方面,多于一个电晕组件202可以在API网关102内被例示。因此,API网关102可通过按需要例示另外电晕组件202来扩展,以便满足需求。当新的电晕组件202被例示时,化身服务208将信息从输入端点206提供到新例示电晕组件202。
核芯组件204作为“离线”组件操作,以便调用内部服务来从每个电晕组件出站队列216按照API-密钥检索API-密钥使用统计,并且周期性地(例如,每5-10分钟)或按其他时间间隔按照API密钥聚集使用统计。如本文所使用,“离线组件”表示核芯组件204周期性地(即,并非基本上实时地)操作,以便执行本文所述功能。因此,计量和节流以低于电晕组件202所执行的认证以及访问控制的优先级执行,以提供低延时。
核芯组件204还存储了有效且活动的API ID、API密钥和属性,并且将停用且无效的API ID和密钥移动至历史数据。核芯组件204可按API、产品和用户ID提供历史使用分析以及趋势。核芯组件204可按用户、API和产品以几乎实时的方式提供使用统计,例如,在过去24小时内按每10分钟的频率提供使用统计。
核芯组件204还可使用外部服务210以增加的方式(基于时间增量或以事件为基础)读取用户数据。外部服务210会从门户API和/或其他访问机制读取这个数据,并且将数据更新/插入核芯组件204数据库中。此类数据的非限制性示例是:
o用户信息(用户ID、名称、联系信息和其他资料数据)
o所列出的API(API ID、名称等等)
o产品信息(产品ID、名称、API ID、API名称等等)
o用户API配额(用户ID、用户名称、API ID、API名称、配额单位(s)、配额的量(S))
o用户产品配额(用户ID、用户名称、产品ID、产品名称、配额单位(s)、配额的量(S))
外部服务210可以包括密钥和密码生成服务(未示出)。这个服务生成API密钥和密码,并且由API门户104访问以获得API密钥(API门户104仅存储API密钥)。外部服务210还可包括API使用统计服务。这个服务提供针对给定API/产品、用户并在给定时段内的使用统计。这个服务还提供用于时序分析的数据。例如,就给定API和用户而言,所述服务可按10分钟的间隔提供24小时使用数据。另一示例是就给定用户按天提供月度API数据。外部服务210还可包括数据提取服务,以从API门户104提取数据。这个服务能够从平面文件、API门户104所暴露的API或通向API门户104的直接数据库连接读取数据。这种提取可以基于事件,或基于增加时间或完成刷新。
输入端点206针对给定API密钥提供密码。还可采用其他参数生成密码。输入端点206提供用于外部服务请求和内部服务请求的密码。输入端点206被限制来经由外部服务提供来自API门户104的请求的密码,输入端点206存储API密钥、以及呈加密形式的密码。例如,共享密码可为十六进制的文本串。
API网关102可以计量URI用量,基于API门户104中限定的配额来对URI进行节流。API网关102还可计量API延时、计量API正常运行时间,并且按用户和产品提供API使用分析、API可用性度量,提供API延时度量以及有关于使用情况的其他信息。这个信息可通过例如web服务暴露于API门户104以及其他协作系统。
API门户104用于提供API文档、说明API使用示例、公布API最佳实践、公布暴露API列表、公布产品以及用量计费模型、用户登记以及用户资料管理、包括API/产品的密钥和密码的服务的API自助服务、存储并且显示客户协议、API核准工作流程、以及与社交媒体(例如,推特(Twitter)))集成以实现客户交互。API门户104可增加地(例如,基于事件或时间)将这个信息向API网关100推送和/或按需要来推送完整副本。API密钥和密码通过API门户104存储。
API门户104还可维持用户、API ID-配额和用户-产品密钥-配额信息的关系。配额是基于为不同客户、产品和API关系分配的计费方案以及产品内的API的允许用量的作用针对给定API ID和产品密钥的导出信息。配额可为最大请求/分钟或最大请求/天或最大请求/月。API门户104维持配额信息。
API服务106表示通过API管理系统100管理的API暴露的数据服务。例如,API服务106可以包括但不限于广播天气数据、历史天气数据、广告宣传数据、通信量数据等。
因此,API管理系统100中的API网关102设计用于以离线的方式周期性地执行计量和节流使低延时优先于如实时节流等的特征。因此,API网关102能够处理高API通信量(例如,每天超出10亿请求)和较大负载(例如,大于30kB的负载)。优先化的示例在图3中示出。比起实时节流,在设计中的最高的优先级是提供低API延时。为实现低延时,认证和访问是通过电晕组件202来在线执行的,而聚集的计量和节流是使用核芯组件204周期性地离线执行。
参考图4,示出API网关102执行的功能的示例操作流程。在400处,API网关102开始它的处理。所述开始可以启动一个或多个同时执行进程。第一示例进程开始监视并且处理对API服务106的传入请求。在这个进程内,在402处,从例如客户处接收对服务的请求作为API请求。例如,API请求可由客户使用在HTTP请求中包含适当API密钥和令牌的URI做出。在404处,检查API请求中包含的信息以认证和验证与请求关联的客户。这个信息可由电晕组件202进行存储器内处理,以便确定是否应服务于API请求。如果在404处,API请求通过检查,那么在406处,针对做请求的特定客户增加API使用计数。此操作的结果存储在数据库中。随后,在408处,将请求传到API服务。API服务106可将响应以负载(例如,较大负载)的形式提供至请求者。然而,如果在404处,请求并未通过检查,那么在410处,节流请求。图4中示出的操作流程基本上连续地操作,以服务于电晕组件202所接收的请求。
如图5所示,电晕组件202可以调用内部API服务,以便周期性地将信息推送至核芯组件204。这个信息可以包括API密钥、密码、标记、配额信息/用量等等,以便周期性地更新电晕组件的配额标记。
如图6所示,电晕组件202可以调用内部API服务并且周期性地更新电晕组件的配额标记。另外,电晕组件202可基于API-密钥聚集的用量对比分配配额来决定更新标记。周期性地,核芯组件204就给定API密钥来检查聚集用量。如果聚集用量超出分配配额,那么基于业务规则将API有效标记设定为“T”或“S”。例如,API有效标记的值可为O:确认;T:暂时禁止;或S:中止。如果API请求/分钟超出就给定API密钥设定的容量,那么电晕组件202还可中止API请求。
可以使用许多其他通用或专用计算系统环境或配置。可适合于使用的熟知计算系统、环境和/或配置的示例包括但不限于PC、服务器计算机、手持设备或膝上型设备、多处理器系统、基于微处理器系统、网络PC、小型计算机、大型计算机、埋置式系统、包括以上系统或设备的任一者的分布计算环境等等。
可以使用将由计算机执行的计算机可执行指令(诸如程序模块)。一般而言,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。分布计算环境可以在任务由通过通信网络或其他数据传输介质链接的远程处理设备执行的情况下使用。在分布计算环境中,程序模块和其他数据可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。
参考图7,用于实施本文描述的各个方面的示例性的系统包括计算设备,诸如计算设备700。在它的最基本的配置中,计算设备700通常包括至少一个处理单元702和系统存储器704。根据计算设备的提取配置和提取类型,系统存储器704可为易失性(诸如随机存取存储器(RAM))、非易失性(诸如只读存储器(ROM)、闪存等等)或这两者的一些组合。在图7中,这个最基本的配置是以虚线706示出。
计算设备700可以具有另外特征和/或功能。例如,计算设备700可以包括另外存储装置(可移动和/或不可移动),包括但不限于磁盘或光盘或磁带。在图7中,此类另外存储装置以可移动存储装置708和不可移动存储装置710示出。
计算设备700通常包括多种计算机可读的介质。计算机可读的介质可为能够由计算设备700访问的任何可用介质,并且包括易失性和非易失性介质、以及可移动和不可移动介质两者。举例来说,但非限制,计算机可读的介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以任何用于存储信息(诸如计算机可读的指令、数据结构、程序模块或其他数据)的方法或技术实施的易失性和非易失性介质、以及可移动和不可移动介质。系统存储器704、可移动存储装置708和不可移动存储装置710都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字通用光盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或可用于存储期望信息并能够由计算设备700访问的任何其他介质。任何此类计算机存储介质可为计算设备700的一部分。
计算设备700还可包含允许计算设备700与其他设备通信的通信连接712。通信连接712是通信介质的示例。通信介质通常以诸如载波或其他传输机制的调制数据信号体现计算机可读的指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“调制数据信号”表示使其特性的一个或多个以编码信号中信息的方式设置或改变的信号。举例来说,但非限制,通信介质包括诸如有线网络或直连连接的有线介质,以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。如本文使用的术语计算机可读的介质包括存储介质和通信介质两者。
计算设备700还可具有输入设备714,诸如键盘、鼠标、触笔、语音输入设备、触摸输入设备等等。还可包括输出设备716,诸如显示器、扬声器、打印机等等。所有这些设备在本领域中众所周知,并且无需在此详细论述。
计算设备700可为通过网络来互连的多个计算设备700之一。如可了解,网络可为任何适当网络,每个计算设备700可以任何适当方式借助通信连接712来连接至其上,并且每个计算设备700可以任何适当方式来与网络中的其他计算设备700的一个或多个通信。例如,网络可为组织或家庭等等内的有线网络或无线网络,并且可以包括通向外部网络(诸如互联网等)的直接耦接或间接耦接。
应当理解,本文中描述的各种技术可结合硬件或软件或这两者的组合(在适当时)来实施。因此,当前公开的主题的方法和装置或其某些方法或部分可以采用体现在有形介质(诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质)中的程序代码(即,指令)的形式,其中当程序代码加载到诸如计算机的机器中并由机器执行时,所述机器成为用于实践当前公开的主题的装置。在程序代码执行在可编程计算机上的情况下,计算设备一般来说包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。一个或多个程序可以例如通过使用应用编程接口(API)、可重复使用的控件等等来实施或利用结合当前公开的主题描述的进程。此类程序可以用高级程序语言或面向对象编程语言实施,以与计算机系统通信。然而,在需要时,程序可以汇编语言或机器语言实施。在任何情况下,语言可以是编译或解释语言,并且可与硬件实施方式组合。
虽然示例性的实施方式可涉及到在一个或多个独立计算机系统的上下文中利用当前公开的主题的方面,但是本发明的主题不受这样限制,而是可结合诸如网络或分布计算环境的任何计算环境来实施。另外,当前公开的主题的方面可以在多个处理芯片或设备中或跨多个处理芯片或设备实施,并且存储可类似跨多个设备实现。例如,此类设备可以包括个人计算机、网络服务器以及手持设备。
虽然已用特定于结构特征和/或方法动作的语言描述本发明的主题,但应理解,随附的权利要求书中定义的主题不一定限制于上述具体的特征或动作。相反,上述具体的特征和动作公开为实施权利要求的示例形式。

Claims (15)

1.一种用于在应用编程接口API网关处接收和处理API请求的方法,所述方法包括以下步骤:
在计算设备上执行的第一组件处接收API请求,所述第一组件作为存储器内组件被提供,并且以第一优先级执行以检查API ID、API密钥、密码摘要和API有效标记中的至少一者,以便执行对所述API请求的认证;
认证在认证的API请求中包含的API密钥和密码摘要;
增加API使用值;
由第二组件基于数据库中的API使用值来确定进行所述API请求的用户是否已超出预定配额,其中,所述第二组件作为以低于所述第一优先级的第二优先级执行的离线组件被提供;
根据所述API密钥和所述API有效标记提供对API服务的访问;
将所述API使用值周期性地压入消息队列中,所述消息队列是由所述计算设备上执行的所述第二组件处理;以及
用所述第二组件提供的使用信息周期性地更新由所述第一组件使用的API有效标记。
2.如权利要求1所述的方法,所述方法还包括以下步骤:
根据所述API ID和产品密钥增加所述API使用值;
将所述API使用值放入出站消息队列中;以及
将所述API使用值填充到所述数据库中。
3.如权利要求2所述的方法,所述方法还包括以下步骤:通过所述离线组件将使用信息放入入站队列中,所述入站队列由所述存储器内组件周期性地读取以更新存储器内APIID、所述产品密钥和所述API有效标记。
4.如权利要求1所述的方法,所述方法还包括以下步骤:根据所述使用信息确定是否应对所述API请求进行节流。
5.如权利要求1所述的方法,用所述第二组件提供的使用信息周期性地更新由所述第一组件使用的API有效标记的步骤还包括:由所述第一组件读取所述消息队列,以更新所述API ID、所述API密钥和所述API有效标记的值。
6.如权利要求1所述的方法,所述方法还包括以下步骤:对所述API请求和所述API密钥执行有效性检查。
7.如权利要求1所述的方法,所述方法还包括以下步骤:如果来自所述API请求的密码摘要等于计算出的密码摘要,则认证所述API请求。
8.如权利要求1所述的方法,所述方法还包括以下步骤:
在所述计算设备上执行的第一组件处接收第二API请求;
对所述第二API请求中包含的第二API密钥和第二密码摘要进行认证;
增加第二API使用值;
由所述第二组件基于数据库中的第二API使用值来确定进行所述第二API请求的用户是否已超出第二预定配额;
根据所述第二API密钥和第二API有效性标记来提供对所述API服务的访问;
周期性地将所述第二API使用值压入由在所述计算设备上执行的所述第二组件处理的消息队列;以及
用由所述第二组件提供的使用信息来周期性地更新由所述第一组件使用的第二API有效性标记。
9.如权利要求1所述的方法,所述方法还包括以下步骤:
根据由所述第二组件提供的使用信息来对所述API请求进行节流。
10.一种用于处理应用编程接口API请求的装置,所述装置包括:
处理器;以及
存储器,所述存储器存储由所述处理器执行的指令,所述指令在被执行时,实例化具有在所述存储器中执行的在线组件的API网关,所述在线组件接收统一资源标识符URI请求,并且实时地解析所述URI请求,用以确定所述URI以及相关联的API密钥的有效性,所述API网关还具有离线组件,所述离线组件从所述在线组件接收信息,以便确定与所述URI请求关联的使用统计,
其中所述在线组件通过以下方式借助所述API网关提供对所访问的API服务的访问控制以及认证:从URI请求中检索API密钥以及密码摘要;以及如果计算出的密码摘要等于所述URI请求中提供的密码摘要,那么将所述URI请求传送至所述API服务,
其中所述离线组件提供用于所述API服务的用量的计量和节流,并且
其中,计量和节流以比所述访问控制和认证低的优先级执行。
11.如权利要求10所述的装置,其中所述离线组件通过向所述在线组件周期性地提供使用统计来执行所述计量和节流。
12.如权利要求11所述的装置,其中所述计量和节流是基于配额来进行的。
13.如权利要求12所述的装置,其中所述配额基于最大请求/分钟、最大请求/天、或最大请求/月中的一者。
14.如权利要求10所述的装置,其中多于一个在线组件在所述API网关内被例示,以便提供扩展。
15.如权利要求10所述的装置,其中所述API密钥被限定为<产品>/<组件>/<版本>。
CN201580012556.5A 2014-03-18 2015-03-18 处理应用编程接口请求的方法和装置 Expired - Fee Related CN106105100B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461954688P 2014-03-18 2014-03-18
US61/954,688 2014-03-18
PCT/US2015/021183 WO2015143003A1 (en) 2014-03-18 2015-03-18 Low latency, high payload, high volume api gateway

Publications (2)

Publication Number Publication Date
CN106105100A CN106105100A (zh) 2016-11-09
CN106105100B true CN106105100B (zh) 2019-09-06

Family

ID=54142406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012556.5A Expired - Fee Related CN106105100B (zh) 2014-03-18 2015-03-18 处理应用编程接口请求的方法和装置

Country Status (4)

Country Link
US (1) US9846771B2 (zh)
EP (1) EP3120501B1 (zh)
CN (1) CN106105100B (zh)
WO (1) WO2015143003A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044729B1 (en) * 2015-12-01 2018-08-07 Microsoft Technology Licensing, Llc Analyzing requests to an online service
US10382461B1 (en) * 2016-05-26 2019-08-13 Amazon Technologies, Inc. System for determining anomalies associated with a request
CN108270578B (zh) * 2016-12-30 2021-09-21 中国移动通信集团上海有限公司 一种会话相关的网络能力api计费方法及装置
US20180270299A1 (en) * 2017-03-16 2018-09-20 Fugue, Inc. System and method for producing api-throttle and back-pressure avoidance among clients using distributed asynchronous components
US10831511B2 (en) * 2017-04-04 2020-11-10 Adp, Llc Customized application programming interface presentation
US10990290B2 (en) * 2017-05-15 2021-04-27 Alibaba Group Holding Limited High-volume, low-latency data processing in flexibly configured local heterogeneous computing environments
CN109951510A (zh) * 2017-12-21 2019-06-28 深圳联友科技有限公司 一种应用程序的消息推送方法及系统
CN108388475B (zh) * 2018-02-27 2021-06-29 周翠敏 一种基于终端类型配置api资源的方法及系统
CN108647497A (zh) * 2018-04-28 2018-10-12 四川大学 一种基于特征提取的api密钥自动识别系统
TWI690183B (zh) * 2019-01-08 2020-04-01 中華電信股份有限公司 用於支援電話接取物聯網服務之方法與系統
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens
US20210004825A1 (en) * 2019-07-05 2021-01-07 Talkdesk, Inc. System and method for automated scheduling using agent assist within a cloud-based contact center
CN110365700A (zh) * 2019-07-30 2019-10-22 上海派拉软件股份有限公司 一种基于服务的访问控制方法
US20210117882A1 (en) 2019-10-16 2021-04-22 Talkdesk, Inc Systems and methods for workforce management system deployment
US11438353B2 (en) * 2019-10-31 2022-09-06 Dell Products L.P. Application programming interface platform management using machine learning
TWI717929B (zh) * 2019-12-09 2021-02-01 鉅康科技股份有限公司 物聯網路裝置通訊方法
CN111212038B (zh) * 2019-12-23 2021-02-09 江苏国泰新点软件有限公司 基于大数据人工智能的开放数据api网关系统
US11736615B2 (en) 2020-01-16 2023-08-22 Talkdesk, Inc. Method, apparatus, and computer-readable medium for managing concurrent communications in a networked call center
US11449909B2 (en) * 2020-01-24 2022-09-20 Salesforce.Com, Inc. Customizable formula based dynamic API evaluation using a database system
CN111343240B (zh) * 2020-02-12 2022-08-16 北京字节跳动网络技术有限公司 一种服务请求的处理方法、装置、电子设备及存储介质
US11609960B2 (en) * 2020-06-08 2023-03-21 Walmart Apollo, Llc Methods and apparatus for automatically servicing item data requests
CN112181537B (zh) * 2020-09-27 2021-11-19 深圳市集站科技有限公司 一种在计算机程序中调用api的方法及系统
US11818134B1 (en) * 2020-09-30 2023-11-14 Amazon Technologies, Inc. Validating application programming interface (API) requests to infrastructure systems hosted in a cloud computing environment
US11755445B2 (en) * 2021-02-17 2023-09-12 Microsoft Technology Licensing, Llc Distributed virtual data tank for cross service quota management
US11677875B2 (en) 2021-07-02 2023-06-13 Talkdesk Inc. Method and apparatus for automated quality management of communication records
CN113938411A (zh) * 2021-10-13 2022-01-14 上海中通吉网络技术有限公司 基于Java的API网关登录鉴权的测试方法
US11856140B2 (en) 2022-03-07 2023-12-26 Talkdesk, Inc. Predictive communications system
US11736616B1 (en) 2022-05-27 2023-08-22 Talkdesk, Inc. Method and apparatus for automatically taking action based on the content of call center communications
US11971908B2 (en) 2022-06-17 2024-04-30 Talkdesk, Inc. Method and apparatus for detecting anomalies in communication data
US11943391B1 (en) 2022-12-13 2024-03-26 Talkdesk, Inc. Method and apparatus for routing communications within a contact center

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207484A (zh) * 2006-12-22 2008-06-25 华为技术有限公司 多媒体子系统及其建立通道的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2005322959A1 (en) * 2005-01-06 2006-07-13 Tervela, Inc. Intelligent messaging application programming interface
US20070118653A1 (en) * 2005-11-22 2007-05-24 Sabre Inc. System, method, and computer program product for throttling client traffic
US20080103923A1 (en) 2006-10-31 2008-05-01 Digital River, Inc. Centralized Payment Gateway System and Method
US9027039B2 (en) * 2007-01-29 2015-05-05 Intel Corporation Methods for analyzing, limiting, and enhancing access to an internet API, web service, and data
US8621598B2 (en) * 2008-03-12 2013-12-31 Intuit Inc. Method and apparatus for securely invoking a rest API
US8631149B2 (en) * 2008-11-25 2014-01-14 Citrix Systems, Inc. Systems and methods for object rate limiting
US9313604B1 (en) * 2010-06-22 2016-04-12 Amazon Technologies, Inc. Network service request throttling system
US8959237B2 (en) * 2010-09-03 2015-02-17 Cellco Partnership Web services requests throttling
US8671385B2 (en) * 2011-01-07 2014-03-11 Mastercard International Incorporated Methods and systems for throttling calls to a service application through an open API
US9231892B2 (en) * 2012-07-09 2016-01-05 Vmware, Inc. Distributed virtual switch configuration and state management
US9652314B2 (en) * 2012-10-15 2017-05-16 Alcatel Lucent Dynamic application programming interface publication for providing web services
WO2015065398A1 (en) * 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Application programable interface (api) discovery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207484A (zh) * 2006-12-22 2008-06-25 华为技术有限公司 多媒体子系统及其建立通道的方法和装置

Also Published As

Publication number Publication date
US20150269377A1 (en) 2015-09-24
EP3120501A1 (en) 2017-01-25
EP3120501A4 (en) 2017-11-22
WO2015143003A1 (en) 2015-09-24
US9846771B2 (en) 2017-12-19
CN106105100A (zh) 2016-11-09
EP3120501B1 (en) 2018-12-05

Similar Documents

Publication Publication Date Title
CN106105100B (zh) 处理应用编程接口请求的方法和装置
JP7108057B2 (ja) ブロックチェーンに基づく個人データ処理方法およびシステム
US11138300B2 (en) Multi-factor profile and security fingerprint analysis
US20170148264A1 (en) System and method for managing behavior
CN109313572A (zh) 通用自动缩放
US20180357683A1 (en) Rating data management
US20170053295A1 (en) Platform data marketplace
JP2019012528A (ja) メディアインプレッション及び検索語に対する分散型ユーザ情報を収集するための方法及び装置
US20120254042A1 (en) Integrated Mobile/Server Applications
US20150236925A1 (en) Managing cookie data
US20140108092A1 (en) Enhanced adserving metric determination
US20140208399A1 (en) Method and system for accessing a computing resource
US11017432B2 (en) Market exchange for user data and rewards
JP6949555B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US11087143B2 (en) Shop platform using blockchain
US20160224615A1 (en) Method and system for embedding third party data into a saas business platform
US20200151752A1 (en) System and method for acquiring consumer feedback via rebate reward and linking contributors to acquired feedback
US20160350792A1 (en) Systems and methods for simulating reward opportunities
WO2014043360A1 (en) Multi-factor profile and security fingerprint analysis
US20190075096A1 (en) Dynamic password generation
KR20160069435A (ko) 타게팅과 피드백을 활용한 온라인 콘텐츠 플랫폼 운영 방법 및 컴퓨터 프로그램
US20220351237A1 (en) A computer implemented platform for advertisement campaigns and method thereof
JP5998184B2 (ja) コンテンツ配信システム、方法、およびプログラム
US10062091B1 (en) Publisher paywall and supplemental content server integration
KR20210082770A (ko) 챗봇 기반 소셜 네트워크 서비스 제공방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1227193

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210224

Address after: Nebraska

Patentee after: DTN Ltd.

Address before: Vermont, U.S.

Patentee before: TWC Patent Trust

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190906

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1227193

Country of ref document: HK