CN110968626A - 管理应用程序编程接口信息的系统和方法 - Google Patents

管理应用程序编程接口信息的系统和方法 Download PDF

Info

Publication number
CN110968626A
CN110968626A CN201911061857.3A CN201911061857A CN110968626A CN 110968626 A CN110968626 A CN 110968626A CN 201911061857 A CN201911061857 A CN 201911061857A CN 110968626 A CN110968626 A CN 110968626A
Authority
CN
China
Prior art keywords
api
user
computer
target
database
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.)
Granted
Application number
CN201911061857.3A
Other languages
English (en)
Other versions
CN110968626B (zh
Inventor
朴暎进
尹勇炫
梁原硕
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.)
Hanling Co Ltd
Original Assignee
Hanling Co Ltd
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 Hanling Co Ltd filed Critical Hanling Co Ltd
Publication of CN110968626A publication Critical patent/CN110968626A/zh
Application granted granted Critical
Publication of CN110968626B publication Critical patent/CN110968626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

管理API信息的计算机化系统和方法。一种示例性方法包括从与第一计算机系统关联的用户设备接收输入,所述输入不包括第二计算机系统的标识。该方法包括基于输入确定目标API,目标API是第二计算机系统的API。该方法还包括确定用户设备的用户是否能够访问目标API。该方法包括:如果确定用户具有对目标API的访问权限,则从API数据库中检索目标API的文档。该方法包括向用户设备提供检索到的文档。

Description

管理应用程序编程接口信息的系统和方法
技术领域
本发明一般涉及用于管理应用程序编程接口(application programminginterface,API) 信息的计算机化系统和方法。具体而言,本发明实施例涉及创新的和非常规的系统,涉及管 理存储在数据库中的计算机系统的API信息,并使计算机系统的用户能够获取另一计算机系 统的API的文档。
背景技术
API是用于构建软件应用程序的一组例程、协议和工具。一个良好的API使开发一个 程序变得更容易,因为它提供了所有的构建块。然后程序员把数据块放在一起。许多操作环 境提供API,以便程序员能够编写与操作环境一致的应用程序。API通常具有关联的文档, 这些文档提供了使用API的说明。
文档可以以各种形式存在。过去,文档最常见的形式是有界的硬拷贝手册。这些手册 通常是大而笨重的手册,其中载有数百页的详细信息。为了从这些手册中找到和检索信息, 程序员通常被迫从大量不相关的信息中进行搜索。在一个拥有许多不同业务单位、操作环境、 计算机系统和API的大型组织中,这些手册将耗费程序员大量的时间和精力来搜索和确定他 们正在查找的正确的API及其关联文档。
在这一信息技术时代,大量这些硬拷贝手册已被转换为电子版本并放进数据库。此外, 还专门为因特网和计算机系统设计了一些新的文档。这包括文档工具和接口,这些工具和接 口可以生成或协助生成电子版本的文档,这些文档是用户友好的,可以很容易地转换为适用 于API的编程代码。
然而,API文档的电子版本可能不足以解决某些技术问题。在一个拥有许多不同业务 单位、操作环境、计算机系统和API的大型组织中,API及其文档的数量和复杂性使该组织 的数据库难以管理。不同业务单位和操作环境中的用户可能会尝试与其他业务单位和操作环 境的API进行交互。要求开发人员知道他们可能与之交互的每个业务单位、操作环境、计算 机系统和API的身份是低效的。与不同计算机系统或一个计算机系统的子系统关联的API开 发人员可能需要使用不同的编码语言作为每个不同功能的优化选择。大型组织可能会使其计 算机系统和API更新得非常快,这使得所有API的开发者要跟上变化和及时解决冲突更难和 更麻烦。简单的电子版本文档或仅仅存储文档的系统并不能减轻用户的负担或提供及时的协 调。
因此,需要改进的电子API管理的方法和系统。
发明内容
本发明的一个方面涉及一种用于管理API信息的系统。所述系统可以包括至少一个处 理器、存储与计算机系统的API关联的数据和文档的数据库以及至少一个存储器,所述存储 器包含指令,当所述指令由至少一个处理器执行时,使得所述处理器执行操作。所述操作可 包括从与第一计算机系统关联的用户设备接收输入,所述输入不包括第二计算机系统的标识。 这些操作还可以包括排除与计算机系统关联的API,这些API与用户设备的用户基于用户权 限级别不可访问的计算机系统关联,以及基于输入确定目标API,并确定用户设备的用户是 否能够访问目标API,目标API是第二计算机系统的API。如果确定用户具有对目标API的 访问权限,系统可以从API数据库检索目标API的文档,并向用户设备提供检索到的目标 API的文档。
本发明的另一方面涉及一种管理API数据和文档的方法。该方法可以包括从与第一计 算机系统关联的用户设备接收输入,该输入不包括第二计算机系统的标识。该方法还可以包 括:排除与用户设备的用户基于用户权限级别不可访问的计算机系统关联的API,基于输入 确定目标API,目标API是第二计算机系统的API,以及确定用户设备的用户具有访问目标 API的权限。如果确定用户能够访问目标API,则该方法还包括:从API数据库中检索目标 API的文档,以及向用户设备提供检索到的目标API的文档。
本发明的另一方面涉及一种API信息管理系统。系统可包括至少一个处理器、存储与 API关联的数据的数据库、每个API与至少一个计算机系统关联、每个计算机系统可通过相 应的API与其他计算系统连接、以及至少一个存储器,所述存储器包含指令,当所述指令由 至少一个处理器执行时,使所述处理器执行操作。这些操作可以包括从与第一计算机系统关 联的用户设备接收输入,所述输入不包括第二计算机系统的身份,不包括与用户设备的用户 基于用户权限级别不可访问的计算机系统关联的API,以及基于所述输入确定目标API,所 述目标API是所述第二计算机系统的API。这些操作包括确定用户设备的用户是否具有对目 标API的访问权限,并且如果确定用户具有对目标API的访问权限,则从API数据库检索目 标API的文档,并向用户设备提供检索到的目标API的文档。这些操作还包括:接收在API 数据库中注册其中一个计算机系统的API的请求,将与API关联的数据存储在API数据库中, 根据请求生成与API关联的文档,并将文档存储在数据库中,以及接收更新存储在API数据 库中的其中一个API的数据或文档的请求。这些操作还包括根据请求更新API的数据或文档, 并响应请求向与计算机系统关联的用户设备发送通知。
本文还讨论了其他系统、方法和计算机可读介质。
附图说明
图1A是示意性框图,示出了系统的一个示例性实施例,该系统包括用于通信的计算 机化系统,以便能够进行发货、运输和物流操作,与公开的实施例一致。
图1B描述了一个示例搜索结果页面(Search Result Page,SRP),其包括满足搜索请 求的一个或多个搜索结果以及交互式用户界面元素,与公开的实施例一致。
图1C描述了一个示例性单显示页面(Single Display Page,SDP),其包括产品和关于 产品的信息以及交互式用户界面元素,与公开的实施例一致。
图1D描述了一个示例购物车页面,该页面包括虚拟购物车中的物品以及交互式用户 界面元素,与公开的实施例一致。
图1E描述了一个示例订单页面,该页面包括来自虚拟购物车的物品以及关于购买和 运输的信息以及交互式用户界面元素,与公开的实施例一致。
图2是配置为使用所公开的计算机化系统的示例性履行中心的示意图,与公开的实施 例一致。
图3描述了用于管理API信息的示例性系统的示意图,与公开的实施例一致。
图4描述了在数据库中注册API的过程,与公开的实施例一致。
图5描述了用于更新数据库中的API信息的过程,与公开的实施例一致。
图6描绘了向用户设备提供文档的示例性过程,与公开的实施例一致。
具体实施方式
以下详细描述参考了附图。在可能的情况下,附图中使用相同的参考编号,下面的描 述是指相同或类似的部分。虽然本文描述了几个说明性实施例,但是可以进行修改、调整和 其他实现。例如,可以对附图所示的组件和步骤进行替换、添加或修改,并且可以通过替换、 重新排序、删除或向所公开的方法添加步骤来修改本文所描述的说明性方法。因此,以下详 细描述不限于所公开的实施例和示例。相反,本发明的适当范围由所附权利要求限定。
本发明的实施例涉及配置用于管理API信息的系统和方法。
参考图1A,为示意性框图100,其示出了系统的示例性实施例,该系统包括用于通信的计算机化系统,所述通信能实现发货、运输和物流操作。如图1A所示,系统100可以 包括多种系统,每种系统可以通过一个或多个网络彼此连接。这些系统也可以通过例如使用线缆的直接连接彼此连接。所描述的系统包括发货权限技术(shipment authoritytechnology, SAT)系统101、外部前端系统103、内部前端系统105、运输系统107、移动设备107A、107B 和107C、卖方门户109、发货和订单跟踪(shipment and order tracking,SOT)系统111、履行 优化(fulfillment optimization,FO)系统113、履行消息网关(fulfillment messaging gateway,FMG) 115、供应链管理(supply chain management,SCM)系统117、员工管理系统119、移动设备 119A、119B和119C(描述为在履行中心(fulfillment center,FC)200中)、第三方履行系统 121A、121B和121C、履行中心授权系统(fulfillment center authorization,FC Auth)123和劳 动管理系统(labor managementsystem,LMS)125。
在一些实施例中,SAT系统101可以实现为监视订单状态和派送状态的计算机系统。 例如,SAT系统101可确定订单是否已超过其承诺派送日期(Promised Delivery Date,PDD), 并可采取适当行动,包括发起新订单、重新发货未派送订单中的物品、取消未派送订单、发 起与订购客户的联系等。SAT系统101还可以监测其他数据,包括输出(例如在特定时间内 发货的若干包裹)和输入(例如收到的用于运输的空纸板箱的数目)。SAT系统101还可以充 当系统100中不同设备之间的网关,从而能实现在诸如外部前端系统103和FO系统113等 设备之间进的通信(例如,使用存储转发或其他技术)。
在一些实施例中,外部前端系统103可以实现为计算机系统,该计算机系统使外部用 户能够与系统100中的一个或多个系统交互。例如,在系统100使系统能够呈现以使用户能 够对物品下订单的实施例中,外部前端系统103可以作为Web服务器来实现,该Web服务器 接收搜索请求、呈现物品页并请求支付信息。例如,外部前端系统103可以实现为运行软件 的计算机,如Apache HTTP服务器、Microsoft Internet信息服务(IIS)、NGINX等。在其他 实施例中,外部前端系统103可运行定制的Web服务器软件,该软件设计为接收和处理来自 外部设备(例如,移动设备102A或计算机102B)的请求、基于这些请求从数据库和其他数据存储中获取信息以及基于所获取的信息对所接收的请求作出响应。
在一些实施例中,外部前端系统103可以包括网络缓存系统、数据库、搜索系统或支 付系统中的一个或多个。在一个方面,外部前端系统103可包括一个或多个这些系统,而在 另一方面,外部前端系统103可包括连接到一个或多个这些系统的接口(例如,服务器到服 务器、数据库到数据库或其他网络连接)。
图1B、1C、1D和1E所示的一组说明性步骤将有助于描述外部前端系统103的一些操作。外部前端系统103可从系统100中的系统或设备接收信息以进行呈现和/或显示。例如, 外部前端系统103可以承载或提供一个或多个网页,包括搜索结果页面(SRP)(例如,图1B)、 单一详细页面(SDP)(例如,图1C)、购物车页面(例如,图1D)或订购页面(例如,图1E)。用户设备(例如,使用移动设备102A或计算机102B)可以导航到外部前端系统103, 并通过在搜索框中输入信息来请求搜索。外部前端系统103可以向系统100中的一个或多个系统请求信息。例如,外部前端系统103可以向满足搜索请求的FO系统113请求信息。外 部前端系统103还可以(从FO系统113)请求和接收搜索结果中所包括的每种产品的预期派 送日期或"PDD"。在一些实施方案中,PDD可以表示如果在特定的时段内例如在一天结束前(11:59PM)订购,对包含产品的包裹将在何时到达用户期望的位置的估计或承诺在用户期望的位置派送产品的日期。(PDD将在下文参考FO系统113进一步讨论。)
外部前端系统103可基于该信息准备SRP(例如,图1B)。SRP可以包括满足搜索请求的信息。例如,这可能包括满足搜索请求的产品图片。SRP还可包括每种产品各自的价格,或与每种产品的增强派送选项、PDD、重量、大小、报价、折扣等有关的信息。外部前端系 统103可将SRP发送至请求用户设备(例如,通过网络)。
然后,用户设备可以从SRP中选择产品,例如通过单击或点击用户界面,或使用另一输入设备来选择SRP中代表的产品。用户设备可以制定关于所选产品的信息的请求,并将其发送到外部前端系统103。作为响应,外部前端系统103可以请求与所选产品相关的信息。例如,这些信息可能包括关于各自SRP的产品所提供的信息之外的其他信息。例如,这可以包括保质期、原产地、重量、大小、包裹中的物品数、处理说明或有关产品的其他信息。这 些信息还可包括对类似产品的推荐(例如,基于购买该产品和至少一种其他产品的客户的大数据和/或机器学习分析)、对常见问题的回答、客户的评论、制造商信息、图片等。
外部前端系统103可基于接收到的产品信息准备SDP(单细节页面)(例如,图1C)。SDP还可以包括其他交互元素,如“立即购买”按钮、“添加到购物车”按钮、数量字段、物品图片等。SDP还可包括一份提供该产品的卖方名单。该清单可以根据每个卖方提供的价格进行订购,以便要以最低价格销售产品的卖方可以在顶部列出。该名单也可根据卖方的排名来 排序,以使排名最高的卖方可列在最顶上。卖方的排名可以根据多种因素来制定,例如,包 括卖方满足承诺的PDD的过去跟踪记录。外部前端系统103可以将SDP传送到请求用户设备(例如,通过网络)。
请求用户设备可以接收列出产品信息的SDP。一旦接收到SDP,用户设备就可以与SDP进行交互。例如,请求用户设备的用户可以单击或以其他方式与SDP上的“加入购物车”按钮交互。这将产品添加到与用户关联的购物车中。用户设备可以向外部前端系统103发送将该产品添加到购物车的请求。
外部前端系统103可生成购物车页面(例如,图1D)。在一些实施例中,购物车页面列出了用户已添加到虚拟“购物车”中的产品。用户设备可以通过单击或以其他方式与SRP、SDP或其他页面上的图标交互来请求购物车页。在一些实施例中,购物车页面可以列出用户已添加到购物车的所有产品,以及购物车中有关产品的信息,例如每种产品的数量、每种产品每件的价格、每种产品的基于相关数量的价格、有关PDD的信息、派送方法、运输成本、 用于修改购物车中产品的用户界面元素(例如,删除或修改数量)、用于订购其他产品或设置定期派送产品的选项、用于设置利息付款的选项、用于继续购买的用户界面元素等。用户设备上的用户可以点击或以其他方式与用户界面元素(例如,显示“立即购买”的按钮)交互,以发起对购物车中的产品的购买。一旦这样做,用户设备可以向外部前端系统103发送发起购买的请求。
外部前端系统103可生成订单页面(例如,图1E)以响应于接收到发起购买的请求。在一些实施例中,“订单”页重新列出购物车中的物品,并请求输入付款和运输信息。例如,订单页面可包括一个节段,请求关于购物车中物品的购买者的信息(例如,姓名、地址、电子邮件地址、电话号码)、收件人的信息(例如,姓名、地址、电话号码、派送信息)、发货 信息(例如,派送速度/方法和/或拣取)、付款信息(例如,信用卡、银行转帐、支票、存贷)、 用户界面元素要求现金收据(例如,用于税务目的)等。外部前端系统103可以向用户设备 发送订单页面。
用户设备可以在订单页面上输入信息,并单击或以其他方式与用户界面元素交互,该 用户界面元素将信息发送到外部前端系统103。从那里,外部前端系统103可以将信息发送 到系统100中的不同系统,以便能够创建和处理购物车中的产品的新订单。
在一些实施例中,外部前端系统103还可用于使卖方能够发送和接收与订单有关的信 息。
在一些实施例中,内部前端系统105可实施为计算机系统,该计算机系统使内部用户 (例如,拥有、操作或租赁系统100的组织的雇员)能够与系统100中的一个或多个系统交互。例如,在网络101使系统能够呈现以使用户能够对物品下订单的实施例中,内部前端系统105可作为Web服务器实现,该Web服务器使内部用户能够查看关于订单的诊断和统计信息、修改物品信息或核对与订单有关的统计。例如,内部前端系统105可以实现为运行软件的计算机,如Apache HTTP服务器、Microsoft Internet信息服务(IIS)、NGINX等。在其他实施例中,内部前端系统105可运行定制Web服务器软件,该软件设计为接收和处理来自系统100中描绘的系统或设备的请求(以及未描绘的其他设备),基于这些请求从数据库和其他 数据存储获取信息,并基于所获取的信息对所接收的请求提供响应。
在一些实施例中,内部前端系统105可以包括网络缓存系统、数据库、搜索系统、支付系统、分析系统、订单监控系统等中的一个或多个。在一个方面,内部前端系统105可以包括一个或多个这些系统,而在另一个方面,内部前端系统105可以包括连接到一个或多个这些系统的接口(例如,服务器到服务器、数据库到数据库或其他网络连接)。
在一些实施例中,运输系统107可以实现为这样的计算机系统:该计算机系统能够在 系统100中的系统或设备与移动设备107A-107C之间进行通信。在一些实施例中,运输系统 107可以从一个或多个移动设备107A-107C(例如,移动电话、智能电话、PDA等)接收信息。例如,在一些实施例中,移动设备107A-107C可以包括由派送工作人员操作的设备。可能是永久、临时或轮班雇员的派送工作人员可以使用移动设备107A-107C来派送包含用户订 购的产品的包裹。例如,为了派送包裹,派送工作人员可以在移动设备上收到通知,该通知 指示着要派送的包裹和要派送的包裹的位置。在到达派送地点后,派送工作人员可以使用移 动设备定位包裹(例如,在卡车后面或包裹箱中),扫描或以其他方式取得与包裹上的标识符 相关的数据(例如,条形码、图像、文本字符串、RFID标签等),并派送包裹(例如,将其 留在前门,把它交给保安,交给收件人,等等)。在一些实施例中,派送工作人员可以取得包 裹的照片和/或可以使用移动设备获得签名。移动设备可以向运输系统107发送信息,包括关 于派送的信息,例如,包括时间、日期、GPS位置、照片、与派送工作人员相关的标识符、与移动设备相关的标识符等。运输系统107可以将这些信息存储在数据库(未图示)中,以供系统100中的其他系统访问。在一些实施例中,运输系统107可以使用这些信息来准备跟踪数据并将其发送到指示特定包裹的位置的其他系统。
在一些实施例中,某些用户可以使用一种移动设备(例如,永久工作人员可以使用带 有定制硬件的专用PDA,如条形码扫描仪、触笔和其他设备),而其他用户可以使用其他类 型的移动设备(例如,临时或轮班工作人员可以使用现成的移动电话和/或智能手机)。
在一些实施例中,运输系统107可以将用户与每个设备相关联。例如,交通系统107可存储用户(例如以用户标识符、雇员标识符或电话号码表示)与移动设备(例如以国际移动设备标识(IMEI)、国际移动订用标识符(IMSI)、电话号码、通用唯一标识符(UUID) 或全局唯一标识符(GUID)表示)之间的关联性。运输系统107可使用这一关联性,结合收 到的关于派送的数据,分析数据库中存储的数据,以便除其他事项外,还确定工作人员的位 置、工作人员的效率或工作人员的速度。
在一些实施例中,卖方门户109可被实现为计算机系统,该计算机系统使卖方或其他 外部实体能够与系统100中的一个或多个系统以电子方式通信。例如,针对卖方希望使用卖 方门户109通过系统100销售的产品,卖方可以使用计算机系统(未图示)上传或提供产品 信息、订单信息、联系信息等。
在一些实施例中,发货和订单跟踪系统111可实施为计算机系统,该计算机系统接收、 存储和转发关于包含由客户(例如,由使用设备102A-102B的用户)订购的产品的包裹的位 置的信息。在一些实施例中,发货和订单跟踪系统111可请求或存储来自由发货公司运营的 网络服务器(未示出)的信息,所述发货公司派送包含客户订购的产品的包裹。
在一些实施例中,发货和订单跟踪系统111可以请求和存储来自系统100中描述的系 统的信息。例如,发货和订单跟踪系统111可从运输系统107请求信息。如上所述,运输系统107可从与一个或多个用户(例如,派送工作人员)或车辆(例如,派送卡车)相关联的 一个或多个移动设备107A-107C(例如,移动电话、智能电话、PDA等)接收信息。在一些 实施例中,发货和订单跟踪系统111还可以从员工管理系统(workforce management system,WMS)119请求信息,以确定履行中心(例如,履行中心200)内部的单个产品的位置。发 货和订单跟踪系统111可从一个或多个运输系统107或WMS 119请求数据,处理该数据,并 应请求将其提供给设备(例如用户设备102A和102B)。
在一些实施例中,履行优化(FO)系统113可被实现为存储来自其他系统(例如, 外部前端系统103和/或发货和订单跟踪系统111)的客户订单信息的计算机系统。FO系统 113还可以存储描述特定物品被保存或存储的位置的信息。例如,某些物品可能只存储在一 个履行中心中,而某些其他物品可能存储在多个履行中心中。在另一些实施例中,某些履行中心可设计为仅存储特定的一组物品(例如,新鲜产品或冷冻产品)。FO系统113存储这些信息以及相关信息(例如,数量、大小、接收日期、到期日期等)。
FO系统113还可以计算每个产品的相应的PDD(承诺派送日期)。在一些实施例中,PDD可以基于一个或多个因素。例如,FO系统113可根据以下来计算产品的PDD:产品过 去的需求(例如,产品在一段时间内被订购了多少次),产品预期的需求(例如,在即将到来 的一段时间内预测有多少客户订购了该产品),表明在一段时间内订购了多少产品的全网范围的过去的需求,表明在即将到来的一段时间内预计要订购的产品数量的全网范围内的预期需 求,存储在每个履行中心200中的产品的一个或多个计数,哪个履行中心存储每个产品、该 产品的预期或当前订单等。
在一些实施例中,FO系统113可定期(例如,每小时地)确定每种产品的PDD,并 将其存储在数据库中以便检索或发送到其他系统(例如,外部前端系统103、SAT系统101、 发货和订单跟踪系统111)。在其他实施例中,FO系统113可接收来自一个或多个系统(例 如,外部前端系统103、SAT系统101、发货和订单跟踪系统111)的电子请求,并按需计算 PDD。
在一些实施例中,履行消息网关(FMG)115可实现为计算机系统,该计算机系统以一种格式或协议从系统100中的一个或多个系统(如FO系统113)接收请求或响应,将其转换为另一种格式或协议,并将其以转换后的格式或协议转发到其他系统,如WMS 119或第三方履行系统121A,121B或121C,反之亦然。
在一些实施例中,供应链管理(SCM)系统117可以实现为执行预测功能的计算机系统。例如,SCM系统117可以基于,例如,基于对产品的过去需求、对产品的预期需求、全 网范围的过去需求、全网范围的预期需求、存储在每个履行中心200中的计数产品、对每个 产品的预期或当前订单等来预测特定产品的需求水平。针对这一预测水平和所有履行中心的每个产品的数量,SCM系统117可生成一个或多个采购订单以购买和库存足够数量从而满足对特定产品的预测需求。
在一些实施例中,员工管理系统(WMS)119可以实现为监视工作流的计算机系统。例如,WMS 119可以从指示离散事件的单个设备(例如,设备107A-107C或119A-119C)接 收事件数据。例如,WMS 119可以接收指示使用这些设备之一扫描包裹的事件数据。如下文 关于履行中心200和图2的讨论,在履行过程中,可由机器在特定阶段扫描或读取包裹标识 符(例如,条形码或RFID标签数据)(例如,自动或手持条形码扫描器、RFID读取器、高 速相机、诸如平板电脑119A、移动设备/PDA 119B、计算机119C等的设备)。WMS 119可将 指示扫描或读取包裹标识符的每个事件连同包裹标识符、时间、日期、位置、用户标识符或 其他信息存储在相应的数据库(未图示)中,并可将此信息提供给其他系统(例如,发货和 订单跟踪系统111)。
在一些实施例中,WMS 119可存储将一个或多个设备(例如,设备107A-107C或119A-119C)与系统100所关联的一个或多个用户相关联的信息。例如,在某些情况下,用户(例如,非全职或全职雇员)可能与移动设备相关联,因为用户拥有移动设备(例如,移动 设备是智能手机)。在其他情况下,用户可能与移动设备相关联,因为用户暂时处于保管移动设备的状态(例如,用户在一天开始时签出移动设备,在一天中使用该移动设备,并在一天结束时返还该移动设备)。
在一些实施例中,WMS 119可以为与系统100相关联的每个用户维护工作日志。例如,WMS 119可存储与每个雇员相关联的信息,包括任何分派的处理(例如对卡车卸货、从拣取区域拣取物品、雷宾墙工作(Rebin Wall Work)、打包物品)、用户标识符、地点(例如履行中心200中的地板或区域)、通过雇员而在系统中移动的单元的数量(例如被拣取的物品 的数量、被打包的物品的数量)、与设备(例如,设备119A-119C)等相关联的标识符,等等。 在一些实施例中,WMS 119可以接收来自计时系统的签入和签出信息,例如在设备119A-119C 上操作的计时系统。
在一些实施例中,第三方履行(3PL)系统121A-121C代表与第三方物流和产品供应商相关联的计算机系统。例如,虽然一些产品存储在履行中心200中(如下文关于图2所讨论的),但其他产品可以存储在异地,可以按需生产,或者可能无法存储在履行中心200中。3PL系统121A-121C可配置为接收来自FO系统113(例如,通过FMG 115)的订单,并可 直接向客户提供产品和/或服务(例如,派送或安装)。在一些实施例中,3PL系统121A-121C 中的一个或多个可以是系统100的一部分,而在其他实施例中,3PL系统121A-121C中的一 个或多个可以在系统100之外(例如,由第三方供应商拥有或操作)。
履行中心认证系统(FC Auth)123,在一些实施例中,可以实现为具有各种功能的计 算机系统。例如,在一些实施例中,FC Auth 123可以充当系统100中的一个或多个其他系统 的单点登录(SSO)服务。例如,FC Auth 123可以使用户能够通过内部前端系统105登录, 确定用户在发货和订单跟踪系统111中具有访问资源的类似特权,并使用户能够获取这些特 权,而无需第二次登录过程。在其他实施例中,FC Auth 123可以使用户(例如,雇员)能够 将自己与特定任务相关联。例如,一些雇员可能没有电子设备(例如装置119A-119C),而可 能在一天内在履行中心200内从任务转移到任务、从区域转移区域。FC Auth123可配置为使 这些雇员能够说明他们正在执行的任务以及他们在一天中不同时间处于的区域。
在一些实施例中,劳动力管理系统(LMS)125可以实现为计算机系统,该计算机系统存储雇员(包括全职和非全职雇员)的考勤和加班信息。例如,LMS 125可从FC Auth 123、WMA 119、装置119A-119C、运输系统107和/或装置107A-107C接收信息。
图1A中所示的特定配置仅是一个示例。例如,尽管图1A描述了连接到FO系统113的FC Auth系统123,但并不是所有的实施例都需要这种特定的配置。实际上,在一些实施例中,系统100中的多个系统可以通过一个或多个公共或私有网络彼此连接,包括互联网、内联网、广域网(WAN)、城域网(MAN)、符合IEEE 802.11a/b/g/n标准的无线网络、租用 线路等。在一些实施例中,系统100中的一个或多个系统可以实现为在数据中心、服务器场 等处实现的一个或多个虚拟服务器。
图2描绘了履行中心200。履行中心200是存储在订购时用于发货给客户的物品的物 理位置的例子。履行中心(FC)200可以分为多个区域,每个区域在图2中描述。在一些实施例中,这些“区域”可以被认为是接收物品、存储物品、检索物品和运输物品过程的不同阶段之间的虚拟划分。因此,尽管图2中描述了“区域”,但在一些实施例中,其他区域的划分是可能的,并且图2中的区域可以省略、复制或修改。
入站区域203代表FC 200的一个区域,在该区域中,从希望使用图1A中的系统100销售产品的销售者处接收物品。例如,卖方可以使用卡车201派送物品202A和202B。物品202A可能代表一个大到足以占满自己的货盘的物品,而物品202B可能代表一组堆积在同一货盘上的物品,以节省空间。
工作人员将接收入站区域203中的物品,并可选择性地使用计算机系统检查物品是否 损坏和正确(未图示)。例如,工作人员可以使用计算机系统将物品202A和202B的数量与 订购的物品数量进行比较。如果数量不匹配,该工作人员可以拒绝一个或多个物品202A或 202B。如果数量匹配,工作人员可以将这些物品(例如,使用滑动台架、手卡车、叉车或手动)移动到缓冲区域205。例如,缓冲区域205可能是目前在拣取区域中不需要的物品的临时存储区,因为拣取区域中有足够数量的物品,以满足预测的需求。在一些实施例中,叉车206操作以在缓冲区域205周围以及在入站区域203和放下区域207之间移动物品。如果需要在拣取区域内的物品202A或202B(例如,由于预测的需求),叉车可将物品202A或202B 移至放下区域207。
放下区域207可以是FC 200的一个区域,该区域在物品被移至拣取区域209之前存储物品。指派了拣取任务的工作人员("拣取者")可以接近拣取区域中的物品202A和202B,使用移动设备(例如,设备119B)扫描拣取区域的条形码,并扫描与物品202A和202B相 关联的条形码。然后,拣取者可以将该物品带至拣取区域209(例如,通过将其放置在购物 车上或携带该物品)。
拣取区域209可以是FC 200的一个区域,其中物品208存储在存储单元210上。在一些实施例中,存储单元210可包括一个或多个物理搁架、书架、盒、托架、冰箱、冰柜、 冷藏库等。在一些实施例中,拣取区域209可组织成多个楼层。在一些实施例中,工作人员 或机器可以以多种方式将物品移入拣取区域209,包括例如叉车、电梯、传送带、手推车、 手推运货车、滑动台架、自动化机器人或装置,或手动方式。例如,拣取者可将物品202A 和202B放置在放下区域207的手推车或手推车上,并将物品202A和202B送至拣取区域209。
拣取者可接收指令,以将物品放置(或“存放”)在拣取区域209中的特定点(例如存储单元210上的特定空间)。例如,拣取者可以使用移动设备(例如,设备119B)扫描物品202A。该设备可以指示拣取者应当存放物品202A的位置,例如,使用指示通道、搁架和位 置的系统。然后,在将物品202A存放在该位置之前,设备可能会提示拣取者在该位置扫描 条形码。该设备可以(例如,通过无线网络)将数据发送到计算机系统,例如图1A中的WMS 119,该计算机系统指示物品202A已被用户使用设备119B存储在该位置。
一旦用户下订单,拣取者可以在设备119B上接收指令,以从存储单元210检索一个或多个物品208。拣取者可以检索物品208,扫描物品208上的条形码,并将其放置在运输机构214上。虽然运输机构214表示为滑块,但在一些实施例中,运输机构可以实现为传送带、电梯、推车、叉车、手推运货车、滑动台架、推车等中的一个或多个。然后,物品208可到 达打包区域211。
打包区域211可以是FC 200的一个区域,在该区域,从拣取区域209接收物品并打包在箱子或袋中,以便最终发货给客户。在打包区域211,指派接收物品的工作人员("雷宾工作人员")将从拣取区域209接收物品208,并确定其对应的顺序。例如,雷宾工作人员可以使用诸如计算机119C之类的设备来扫描物品208上的条形码。计算机119C可以直观地指示哪一个订单物品208与之相关联。例如,这可以包括壁216上对应于订单的空间或“单元格”。 一旦订单完成(例如,因为单元格包含订单的所有物品),雷宾工作人员可以向打包工作人员 (或“打包员”)指示订单完成。打包员可以从单元格中取出物品,并将其放入一个箱子或袋 中发货。然后,打包员可将盒或袋送至中心区域213,例如,通过叉车、推车、滑动台架、 手推运货车、传送带、手动或其他方式。
中心区域213可以是从打包区域211接收所有箱子或袋("包裹")的FC 200的区域。中心区域213中的工作人员和/或机器可以检索包裹218并确定每个包裹要去往派送区域的哪 个部分,并将包裹送至适当的营地区域215。例如,如果派送区域有两个较小的子区域,则 包裹将转到两个营地区域215中的一个。在一些实施例中,工作人员或机器可以扫描包裹(例 如,使用设备119A-119C之一)以确定其最终目的地。将该包裹分拣至营地区域215可包括, 例如,确定该包裹目的地的地理区域的一部分(例如,基于邮政编码),以及确定与地理区域 的一部分相关联的营地区域215。
在一些实施例中,营地区域215可包括一个或多个建筑物、一个或多个物理空间或一 个或多个区域,其中从中心区域213接收包裹以分拣到路线和/或子路线中。在一些实施例中, 营地区域215与FC 200物理上分开,而在其他实施例中,营地区域215可构成FC 200的一 部分。
营地区域215中的工作人员和/或机器可决定一个包裹220应与哪条路线和/或子路线 相关联,例如,根据目的地与现有路线和/或子路线的比较、每条路线和/或子路线的工作量计 算、一天中的时间、发货方法、发货包裹220的费用、与包裹220中的物品有关的PDD、或 者类似的。在一些实施例中,工作人员或机器可以扫描包裹(例如,使用设备119A-119C之 一)以确定其最终目的地。一旦将包裹220分配给特定的路线和/或子路线,工作人员和/或机 器可以移动待发货的包裹220。在示意图2中,营地区域215包括卡车222、汽车226和派送 工作人员224A和224B。在一些实施例中,卡车222可由派送工作人员224A开动,其中派 送工作人员224A是为FC 200派送包裹的全职雇员,卡车222由拥有、租赁或经营FC200 的同一公司拥有、租赁或运营。在一些实施例中,车辆226可由输送工作人员224B开动,其中输送工作人员224B是“弹性”或偶尔的工作人员,根据需要(例如,季节性地)派送。车辆226可由派送工作人员224B拥有、租赁或运营。
图3描述了管理API信息的示例性系统(示例性系统300)的示意图,与公开的实施例一致。系统300可包括API管理系统310、API连接系统318、计算机系统303、API 105、 数据库330和网络320。计算机系统的API可以通过网络320相互连接。计算机系统303可 包括一个或多个API。同一计算机系统的API也可以通过网络320相互连接。与一个计算机 系统或用户设备关联的用户设备也可以通过网络320连接到其他计算机系统的API。
计算机系统303可以是计算机系统,包括系统100中的一个或多个系统。可以有多个 计算机系统303,每个计算机系统303可以彼此连接(例如,直接连接或通过网络320连接)。 计算机系统303可包括一个或多个计算设备,例如服务器、工作站、台式计算机、移动设备 或专用计算设备。计算机系统303也可以是系统100中各种系统的子系统的一部分。例如, 计算机系统303可以是FO系统113的子系统,该子系统计算每个产品的对应的PDD(承诺派送日期)。
API 305可包括一个或多个API,因为计算机系统303可具有一个或多个API,或可具有各自具有自己的API的子系统。API 305也可以与一个或多个计算机系统关联。API可以包括多个功能和层,这里统称为API。在一些实施例中,API可以包括多个层,例如用户接 口层、API功能层、计算机系统层、公共语言层或数据库。这些层可包括多个功能。例如, API功能层可以包括为API的用户提供不同资源或服务的功能组,例如应用程序员、客户、 监督员等。用户可以使用与网络平台有关和连接到网络平台的功能,网络是计算机系统内的 专用网络、操作环境或整个组织,或者是与外部用户有关的公共网络。程序员用户可以为充 分利用网络资源和其他Web服务的计算系统创建Web应用程序,而无需了解这些网络资源如何实际运作或提供的复杂技术细节。
使用API 305的应用程序可以用多种编程语言编写。例如,这些应用程序可以.NETFramework,.NET Compact Framework(以及有关语言,如Visual Basic、C等)、Java、C++、Objective-C、HTML、HTML/AJAX组合、XML或包含Java小程序的HTML。在一些实施例 中,API305可以支持为计算机系统或子系统的功能而优化的有限数量的首选语言。在其他实 施例中,API 305可以包括公共语言层,该公共语言层将编程语言翻译成公共语言层支持的中间语言,并且作为API的公共语言输出的一部分被包括在内,该API连接到计算机系统303或外部通过网络320。这样,API 305可以有效地提供各种不同的应用,以适应不同类型的计算机系统、子系统和实际需求,以及通过网络320使得示范性系统300的其他组件,如API 管理系统310,能够实现其功能。
API管理系统310可包括或可访问一个或多个存储设备,所述存储设备经配置以存储 API管理系统310的一个或多个处理器,以用于执行与公开的实施例一致的操作的数据和/或 软件指令。例如,API管理系统310可包括存储器,该存储器配置成存储一个或多个软件程 序,该软件程序在处理器执行时执行若干操作,包括特定于所公开的方法的操作。所公开的 实施例不限于被配置为执行专用任务的单独的程序或计算机。例如,API管理系统310可以 包括存储单个程序或多个程序的存储器。此外,API管理系统310可以执行一个或多个程序, 该程序位于API管理系统310的远程。例如,API管理系统310可以访问存储在存储器中的 一个或多个远程程序,该远程程序包含在远程组件(例如数据库330)中,该远程组件在被 执行时,执行与公开的实施例一致的操作。
数据库330可以是一个或多个计算机系统或实现的计算机系统。数据库330可以包括 生成、管理和提供与API信息关联的操作的服务器软件。在一些实施例中,API管理系统310 可与单独的服务器或与数据库330关联的其他计算设备连接,数据库330生成、管理和提供 与API信息关联的服务,用于API管理系统310执行的操作。
数据库330可被配置为存储API 305的信息,与公开的实施例一致。数据库330可用于存储当API注册和更新时提供的API的信息,包括索引信息、标识信息、访问信息、简介 和规则、开发和调试说明以及每次更新的信息更改。数据库330可以为分别在数据库330中 注册的所有API创建条目,以保存选择或使用API的记录。选择API的记录可能与API的每 个部分的每个API的选择有关。使用API的记录可能与API的每个部分的每个API的使用有 关。数据库330还可以为所有通过网络320搜索、选择、连接API的用户创建条目。数据库 330可以通过网络320或与API管理系统310关联地保存每个用户的活动的记录。用户的活 动可包括搜索、选择和连接API,并可与每个API一起记录其活动。
数据库330可与API管理系统310关联,并使网络320可访问数据库330。在一些实施例中,数据库330可作为API管理系统310的一部分提供。API管理系统310可以具有一 个或多个存储存储器,该存储存储器存储了一个或多个程序,当执行该程序时,该程序执行与公开的实施例一致的操作。API管理系统310可以具有数据库,该数据库包括生成、管理和提供与API信息关联的操作的服务器软件。API管理系统310还可以在其数据库部分或一个或多个存储存储器中创建条目,以保存使用API的记录和所有用户记录,与数据库330的公开的实施例一致。例如,当API管理系统310从用户接收到用于搜索API的输入时,API 管理系统310和/或数据库330可以将搜索记录在搜索API的用户的记录中。当用户选择该用户要使用的API的一部分时,API管理系统310和/或数据库330可以将该选择记录在选择API的用户的记录中、选择该API的记录中、以及选择API的该部分的记录中。当用户随后 与API的该部分连接时,API管理系统310和/或数据库330可以在使用API的用户的记录、 使用该API的记录以及使用该API的该部分的记录中记录该活动。
网络320可配置为在图3的组件之间提供通信。例如,网络320可以是提供通信、交换信息和/或促进信息交换的任何类型的网络(包括基础设施),例如因特网、局域网,或使API管理系统310能够在API管理系统310的组件之间发送和接收信息的其他适当连接。在一些实施例中,网络320可以是与图1A中的一个或多个网络分离的网络。在其他实施例中,网络320可与图1A中的一个或多个网络集成或连接。
API连接系统318可配置为将用户连接到目标API。在一些实施例中,API连接系统318在图6中的步骤640(描述如下)之后将用户连接到目标API,或者可以在接收到来自 API管理系统310的请求后开始。API连接系统318可以具有存储器,该存储器存储在API 管理系统310中注册的所有API,以便用户在处理目标API时,可以在API连接系统318的 服务器上工作,而无需与诸如目标API的计算机系统之类的其他设备或系统进行通信或连接。 API连接系统318可以具有用于存储API的存储器,或者可以远程存储在数据库330中。在 一些实施例中,API连接系统318可以是API管理系统310的一部分。
计算机系统303可以具有一个或多个API 305。具有API的计算机系统303意味着,在一些实施例中,它存储功能和代码,使得与计算机系统303关联的用户设备能够操作从计算机系统303请求数据、处理数据或向计算机系统303发送数据的应用。计算机系统303可以包括存储API 305的源代码的存储器。API 305的源代码也可以从计算机系统303远程存储。 API管理系统310可被配置为在API管理系统310中注册计算机系统303的API,如下面结合图4所讨论的。
图3所示的任何设备和系统可以包括一个或多个处理器、一个或多个存储器以及一个 或多个输入/输出(I/O)设备。这些组件可以通过总线或无线方式彼此通信。这些组件可以驻 留在单个设备或多个设备中。在一些实施例中,这些设备和系统可以采取服务器、专门编程 的计算机、主机计算机、笔记本电脑、智能手机、移动设备或这些组件的任何组合的形式。 在某些实施例中,所述设备和系统可以基于存储、执行和/或实现软件指令而被配置为特定的 装置、系统等,所述软件指令执行与公开的实施例一致的一个或多个操作。这些设备和系统 可以是独立的,也可以是子系统的一部分,子系统的一部分可以是更大的系统的一部分。
处理器可以包括中央处理单元(CPU)、图形处理单元(GPU)或类似的微处理器, 包括一个或多个已知的处理设备,例如由英特尔TM制造的奔腾TM或至强TM系列的微处理器、 由超微TM制造的毒龙TM系列或由太阳微系统或苹果公司制造的任何各种处理器。例如。处理器可以构成一个单独的核或多个核处理器,同时执行并行处理。例如,处理器可以是配置有虚拟处理技术的单核处理器。在某些实施例中,处理器可以使用逻辑处理器同时执行和控制 多个进程。处理器可以实现虚拟机技术或其他已知技术,以提供执行、控制、运行、操作、存储等多种软件过程、应用程序、程序等的能力。在另一个实施例中,处理器可以包括多核处理器布置(例如,双核、四核等)。配置为提供并行处理功能,以允许设备和系统同时执行多个进程。这些设备和系统可以包括一个或多个处理器,并且还可以与相对于处理器而言是 远程的一个或多个其他处理器进行操作。本领域普通技术人员将理解,可以实施其他类型的 处理器安排,以提供本文所揭示的能力。所公开的实施例不限于在设备和系统中配置的任何 类型的处理器。
存储器可以包括一个或多个存储设备,所述存储设备被配置为存储处理器可执行的指 令以执行与所公开的实施例关联的功能。例如,存储器可以包括计算机硬盘、随机存取存储 器(RAM)、可移动存储器或远程计算机存储器。例如,存储器可以配置有一个或多个软件 指令,该软件指令在被处理器执行时执行特定功能。所公开的实施例不限于被配置为执行专 用任务的单独的程序或计算机。此外,处理器可以执行一个或多个位于远离设备和系统的程 序。例如,计算机系统303、API 305或数据库330可以通过API管理系统310(或其变体) 访问一个或多个远程程序,所述远程程序在执行时执行与某些公开的实施例有关的功能。处 理器还可以执行位于数据库330中的一个或多个程序。在一些实施例中,指令可以存储在外 部存储设备中,例如位于API管理系统310外部的云服务器,并且处理器可以远程执行指令。
存储器还可存储数据,该数据以示范性系统300可用于执行与公开的实施例一致的操 作的任何格式反映任何类型的信息。存储器可以存储指令,以使处理器能够执行一个或多个 应用程序,例如服务器应用程序、网络通信过程,以及任何其他类型的应用程序或软件,例 如前端系统103的交互式用户界面。替代性地,指令、应用程序等,可以存储在外部存储器 中。例如,API管理系统310的指令可以存储在数据库330中,并且通过网络320或任何其 他合适的网络与API管理系统310通信。存储器可以是易失性或非易失性、磁性、半导体(例 如EEPROM、闪存等)、磁带、光学、可移动、不可移动或其他类型的存储设备或有形(即, 非易失性)计算机可读介质。
I/O设备可以包括硬件和/或硬件和软件的组合,用于从系统的设备或设备的用户向设 备和系统传送信息。在一些实施例中,用户可以是系统的设备的直接用户。在其他一些实施 例中,用户可以是连接到设备和系统的另一个或多个用户设备和系统。硬件和软件例如可以 是键盘、鼠标、轨迹球、音频输入设备、触摸屏、红外输入接口或类似设备。
图4描绘了与公开的实施例一致的用于在数据库中注册API的过程400。
在步骤402中,API管理系统310接收在系统中注册API的请求。在一些实施例中,请求可以来自计算机系统303或与计算机系统303关联的用户设备。在一些实施例中,请求可以来自API 305或API 305的用户。在其他一些实施例中,该请求可以来自用户设备的用户,该用户设备通过API管理系统310的接口直接发送该请求。请求可以包含用户在发送请求时通过接口给出的API的信息。
在步骤404中,API管理系统310接收要注册的API的信息。这些信息可以包括索引信息、标识信息、访问信息、关于权限级别的授权、简介和规则、开发和调试说明以及API 的先前使用的记录,所有这些都可以被统称为API的数据。访问信息可以指示API对所有用户、API和计算机系统开放。访问信息还可以表明,API总是需要来自打算使用其或与其连接的用户、API或计算机系统的请求。访问信息还可以表明,API可以是以下至少一种:(1)对某些用户、API或计算机系统开放;(二)其他用户、API或者计算机系统无法访问的;或(3)当其他用户、API或计算机系统打算使用或连接API时,需要它们的请求。这些信息还 可以包括API的文档。在一些实施例中,该信息可以包括在注册API的请求中。在其他一些 实施例中,通过API管理系统310的界面与用户、API或计算机系统之间的交互过程来接收 信息。
在步骤406中,API管理系统310可以将API的信息存储在示例性系统300的API 数据库中。在一些实施例中,API管理系统310可以具有自己的API数据库,并且可以将信 息存储在自己的API数据库中。
在步骤408中,API管理系统310可以基于接收到的信息生成与API关联的文档。API管理系统310还可以将接收到的文档与生成的文档结合在一起。在一些实施例中,作为生成文档的一部分,API管理系统310可以编写用于生成用于使用API的代码的一组规则。该组规则可以使API管理系统310能够为连接到API的用户快速和自动地生成代码,使得用户可以跳过学习API的每一部分,并且不需要从头开始开发程序,并且可以将接收到的源代码适配用于其期望的目的。
在步骤410中,API管理系统310可以将API的文档存储在示例性系统300的API 数据库中。在一些实施例中,API管理系统310可以具有自己的API数据库,并且可以将文 档存储在自己的API数据库中。
API管理系统310可被配置为更新API的信息,如下面结合图5所讨论的。
图5描述了用于更新数据库中的API信息的过程500,与公开的实施例一致。
在步骤502中,API管理系统310接收要更新系统中的API信息的请求。在一些实施例中,请求可以来自计算机系统303或与计算机系统303关联的用户设备。在一些实施例中,请求可以来自API 305或API 305的用户。在其他一些实施例中,该请求可以来自用户设备的用户,该用户设备通过API管理系统310的接口直接发送该请求。请求可以包含用户在发送请求时通过接口给出的API的信息。
在步骤504中,API管理系统310接收要更新的API的信息。这些信息可以包括索引信息、标识信息、访问信息、关于权限级别的授权、简介和规则、开发和调试说明以及API 的先前使用的记录,所有这些都可以被统称为API的数据。API管理系统310可以将新信息 与之前的信息进行比较,检测并记录作为以API信息的一部分存储的条目的信息变化。如果请求不是来自注册API的计算机系统,则API管理系统310可以在继续进行下一步骤之前将更新请求通知计算机系统并要求确认。这些信息还可以包括API的文档。在一些实施例中,在步骤502中更新API信息的请求中可以包括该信息。在其他一些实施例中,通过API管理系统310的界面与用户、API或计算机系统之间的交互过程来接收信息。
在步骤506中,API管理系统310可以更新示范性系统300的API数据库中的API 的信息。在一些实施例中,API管理系统310可以具有自己的API数据库,并且可以更新其 自己的API数据库中的信息。
在步骤508中,API管理系统310可以基于接收到的信息生成与API关联的新文档。API管理系统310还可以将接收到的文档与生成的文档结合在一起。在一些实施例中,作为生成文档的一部分,API管理系统310可以编写用于生成代码的一组规则,该代码用于使用API。该组规则可以使API管理系统310能够快速和自动地为连接到API的用户设备生成源代码,使得用户设备的用户可以跳过学习API的每一部分,并且不需要从头开始开发程序,并且可以将自己的源代码或功能直接添加到生成的源代码中。
在步骤510中,API管理系统310可以更新示例性系统300的API数据库中的API 的文档。在一些实施例中,API管理系统310可以具有自己的API数据库,并且可以更新其 自己的API数据库中的文档。
在步骤512中,API管理系统310可以向计算机系统303发送关于更新的通知。在一些实施例中,API管理系统310可以仅向访问API的计算机系统发送通知。在一些实施例中,API管理系统310可以仅向使用过API的计算机系统发送通知。API管理系统310可以通过 电子邮件、消息或其他特定的通信工具发送通知。
图6描绘了与公开的实施例一致的向用户设备提供文档的示例性过程。在步骤605中, API管理系统310可以从用户设备接收输入。在一些实施例中,用户设备可以与计算机系统 303关联。在一些实施例中,请求可以来自API 305或API 305的用户。在其他一些实施例中, 输入可以来自通过API管理系统310的接口直接发送请求的用户。在一些实施例中,输入可 以省略与期望API关联的计算机系统的标识。这提供了效率,因为用户(例如,开发人员) 不需要事先知道要使用哪些计算机系统或API。
在一些实施例中,该输入可以省略特定功能的标识。例如,API管理系统310可以接收输入(例如,来自与FO系统113关联的用户设备),包括请求“承诺派送日期(PDD)数 据”和“发货数据”。(例如,开发人员可能正在开发一个应用程序,用于使用PDD数据的FO 系统113。)用户不需要在搜索之前选择计算机系统或API,这为API文档审查和搜索提供了 优于现有技术的优势。
在一些实施例中,步骤605中的输入可以包括一个或多个条件。条件可以是数据库330用来对API进行分类的条件。例如,条件可以是(1)描述API所关联的系统的功能的关 键字,如运输、派送或前端;(2)描述API的层次结构的关键词或分类术语,如API是否与 系统或子系统有关,API是否是计算机系统的唯一API;(3)涉及版本的编号、日期或者日期 范围;或(4)搜索的目的,例如用户正在从另一个API中寻找什么样的功能或数据。该条件 可以是API管理系统310的接口提供的分类术语,该接口对应于API的信息,使得用户能够 选择信息而不是花费时间来精炼关键字。在一些实施例中,输入可以是检索数据库330中存储的满足某些条件的API列表的请求。一旦接收到这种请求,API管理系统310就不能进入步骤610或任何后续步骤,而只能生成API列表并提供给用户。在其他一些实施例中,输入可以是通过执行存储在API管理系统310中的指令或远程存储在数据库330中的任何请求。
在步骤610中,API管理系统310可以确定目标API。目标API是满足该输入的API,可以基于一个或多个附加步骤来确定。在步骤605中接收具有一个或多个条件的输入时,API 管理系统310可以确定满足该条件的一个或多个API。在一些实施例中,API管理系统310 可以通过首先基于用户的权限级别和/或API对权限级别的授权,排除与用户设备的用户不可 访问的计算机系统关联的API来开始确定目标API。例如,高级开发人员可能比初级开发人 员或合同开发人员具有更高的权限级别,因此,在相同的输入下,API管理系统310可以从 高级开发人员比初级开发人员或合同开发人员更大的API池中确定目标API。这一过程可以 提高API管理系统310在确定目标API时的效率和准确性,并使API信息的不必要暴露最小 化(从而增强数据安全性)。
在一些实施例中,API管理系统310可基于使用API的记录,从满足条件的一个或多个API中确定目标API。例如,当与FO系统113关联的用户设备的用户正在开发使用预期 派送日期(PDD)数据的应用程序时,用户可以搜索API管理系统310中的"发货"和"数据", 并且发货和订单跟踪系统111和SAT系统101都可以满足条件。然而,由FO系统113使用 SAT系统101的API的记录可能比由FO系统113使用发货API和订单跟踪系统111的记录 更多,因此API管理系统310可以确定SAT系统111中的API(具有与FO系统113最关联 的记录)应该是目标API。与同其他API或系统关联的数据相比,与目标API关联的SAT系 统101中的数据很可能更适合于FO系统113中的用户且组织良好。如果在极少数情况下用 户想要连接到另一个系统中的API,用户仍可以在列表中选择API,与其他一些实施例一致。
在一些实施例中,API管理系统310可基于用户的搜索历史、选择历史或使用历史,从满足条件的一个或多个API中确定目标API。在其他一些实施例中,API管理系统310可 以向用户提供满足条件的API,并且用户可以选择目标API。在一些实施例中,输入不包括 一个或多个条件,而是旨在选择API的请求,并且可以通过执行存储在API管理系统310中 或者远程存储在数据库330中的指令来实现,API管理系统310可以基于存储的指令,通过 接口向用户提供进一步的指令,来明确对API的选择。例如,与FO系统113关联的用户可 能想要获得与PDD有关的数据,但对其他系统不太了解。API管理系统可以包含指令,用于 自动搜索存储在数据库330中的API的数据,并获取具有与PDD有关的数据的API的列表。 API管理系统还可以包含指令,用于向用户提供API列表的摘录,或者提供与PDD有关的数 据的描述,使用户能够准确和有效地选择目标API,而无需在搜索之前了解可用的API。
在步骤615中,API管理系统310可以确定用户是否能够访问目标API。在确定用户是否能够访问API时,API管理系统310可以检索存储在与API关联的API数据库中的数据。更具体地,API管理系统310可以考虑与API关联的访问信息,该访问信息可以是数据的一部分。访问信息可能表明API(A)对所有用户、API和计算机系统开放;(B)总是需要拟使 用或连接API的用户、API或计算机系统的请求;或(C)对某些用户、API和计算机系统开 放,而当其他一些用户、API和计算机系统打算使用或连接API时,需要这些其他用户、API 和计算机系统的请求。访问信息还可以指示一个或多个用户无法访问API。在其他一些实施 例中,确定用户是否能够访问目标API可以包括与目标API或目标API的计算机系统进行通 信以确定关联的用户权限。用户权限可以包括是否允许用户访问目标API的信息。确定用户 权限的通信还可以包括请求分配对目标API的访问权限的用户列表,并通过检查用户是否在列表中来确定用户是否具有访问权限。
在一些实施例中,如果在步骤615中访问信息指示API对所有用户、API和计算机系统开放,则API管理系统310可以继续进行到步骤635,并向用户设备提供目标API的文档。在一些实施例中,如果在步骤615中访问信息指示API总是需要来自用户设备、API或打算使用或连接API的计算机系统的请求,则API管理系统310可以继续进行步骤620,并要求 用户设备的用户向目标API发送请求。如果在步骤615中,访问信息指示API对某些用户、 API和计算机系统开放,而当其他一些用户、API和计算机系统打算使用或连接API时需要 这些其他用户、API和计算机系统的请求,则API管理系统310可相应地响应,与本文所公 开的实施例一致。例如,如果用户来自与FO系统113关联的用户设备并且打算连接SAT系 统101的API,并且与API关联的访问信息指示API对FO系统113开放,并且作为管理器 的任何用户,则API管理系统310可以将用户连接到API。但是,如果用户不是经理并且正 在使用劳动力管理系统125的用户设备,则API管理系统310可以通知用户设备向SAT系统 101发送请求。在其他一些实施例中,如果访问信息可能指示API不能被一个或多个用户访 问,则API管理系统310可以继续进行步骤645,并相应地拒绝用户的访问。在其他一些实 施例中,API管理系统310可以通过接口与用户交互,以向API发送请求。如果输入涉及在 不需要检查访问信息的情况下执行的指令,例如仅仅提供满足一个或多个条件的API列表而 不是检索与API关联的文档,则API管理系统310可以继续执行输入的请求而不检查访问信 息。
在步骤620中,API管理系统310可以通过接口或电子邮件、消息或API要求用户在检索文档之前向API发送请求的其他特定通信工具与用户进行通信。
在步骤625中,如果用户向目标API发送请求,则API管理系统310可以通过网络320接收目标API或与目标API关联的计算机系统发出的通知。API管理系统310可以进入 步骤630。如果API管理系统310在经过一定时间后确定用户没有向目标API发送请求,则 API管理系统310可以继续执行步骤645并拒绝访问。在一些实施例中,API管理系统310 可以查看数据库330中存储的与目标API关联的一组规则,以确定周期的长度。在一些其他 实施例中,API管理系统310可具有存储在存储器中或远程存储在数据库330中的指令,该 数据库330指定该周期的长度。
在步骤630中,API管理系统310可从目标API或该目标API所关联的计算机系统获取批准,该批准是该目标API或计算机系统已经批准对用户的访问。在收到批准后,API管理系统310可继续进行到步骤635。如果API管理系统310在某个时间段之后未收到批准或收到拒绝,则API管理系统310可以继续到步骤645中拒绝访问。
在步骤635中,API管理系统310可以向用户设备提供目标API的文档。文档可能是一个巨大的卷,这需要用户花费大量的时间和精力来查找哪些部分可能有用。API管理系统310可以通过自动执行指令来向用户设备提供仅与目标API的一部分关联的文档,从而提高该过程的效率,这可以节省用户大量的时间和精力来确定需要目标API的哪一部分或文档。因此,在一些实施例中,API管理系统310可以向用户设备提供目标API的一部分的文档。 在一些实施例中,API管理系统310可向用户设备提供目标API的一个或多个部分,以供用 户选择。API管理系统310可将与API的部分相关联的信息存储在存储器中或远程存储在数 据库330中,以协助用户选择所需的部分。
在一些实施例中,为了在确定目标API的部分的过程中进一步提高自动化程度,API 管理系统310可以自动缩小目标API的部分的选择范围。API管理系统310可以查看使用目 标API的记录,并且可以将其与用于确定目标API的部分的输入一起包括在内。API管理系 统310还可以查看使用目标API的记录,并且可以将这些记录与输入一起考虑以确定目标API 的部分。API管理系统310还可以查看与API关联的信息以协助确定。在其他一些实施例中, API管理系统310可以使用本文公开的实施例的组合,并且可以在确定目标API的部分时分 配不同实施例的权重系数。API管理系统310可以使用关于使用目标API的记录、使用目标 API的记录或输入来缩小目标API的部分的选择范围,并将缩小后的部分的选择提供给用户 设备以供选择。例如,API管理系统310可以在步骤605中从用户设备接收输入,以搜索执 行特定功能的API、确定用户设备的用户的目标API以及用户具有对目标API的访问权限。 但是目标API有20个部分,每个部分都有大量的文档,20个部分中只有一个或几个与功能 有关。API管理系统310可以首先缩小选择范围,而不是让用户手动搜索执行该功能的API 的一部分。在步骤635中,API管理系统310可以查看使用目标API的记录,并为该使用的记录分配较高的权重系数,以得到目标API的所有部分的受欢迎度的评估。然后,API管理系统310排除既不满足输入条件也不具有高的受欢迎度的部分。API管理系统310向用户设备提供左侧部分作为供选择的部分的缩小列表。API管理系统310还检索与目标API的缩小部分关联的信息,例如描述、规则集和JSON代码的摘录,以协助用户选择。
在步骤635中,在确定了目标API的一部分之后,API管理系统310可以向用户设备提供与该部分目标API关联的文档。如果确定需要整个目标API的文档,则API管理系统310可以提供整个文档。
在步骤635的一些实施例中,API管理系统310可以为用户设备提供与目标API或目标API的一部分关联的源代码,以供用户使用。源代码可以是API中通常使用的语言,例 如.NET Framework,.NET Compact Framework(以及有关语言,如Visual Basic、C等)。)、Java、 C++、Objective-C、HTML、HTML/AJAX组合、XML或包含Java小程序的HTML。源代码 也可以使用编程语言,如JSON或YAML,这更特定于API文档和文档接口。源代码可以直 接应用于目标API。例如,如果用户正在使用使用C++语言的API,并且目标API正在使用 JAVA,则API管理系统310可以自动生成JAVA中的源代码并向用户提供源代码,该源代码 可以直接适用于用户连接目标API并与用户想要使用的功能或部分协作。这种自动化可以大 大提高用户编程和应用程序跨不同API和计算机系统的效率。此外,当用户使用目标API时, 用户有时也需要访问其他API。例如,当内部前端系统105的API的用户正在处理连接到运 输系统107的应用时,用户可能还需要单独访问移动设备107A-107C的API,以生成针对每 种类型的设备而优化的单独应用功能。为了使用户能够在这种情况下有效地工作,在步骤635中,除了生成与作为目标API的运输系统107API的一部分关联的文档和源代码之外,API 管理系统310还可以生成移动设备107A-107C的相应API的文档和补充源代码。
API管理系统310可以通过确定与选定的目标API的部分相关联的API的部分来生成 补充源代码。所述确定可包括以下一项或多项:(A)用户在API管理系统310提供的列表中 选择API的部分;(B)API管理系统310,查看使用目标API的部分的记录,以及寻找使用时哪些API以及哪些部分与目标API的选定部分关联;(C)API管理系统310,查看目标API 各部分的信息,说明如何生成适用于目标API的源代码;(D)API管理系统310,查看有关 记录,以确定API中最常用的部分,这些部分可与或不可与目标API的部分一起使用;(E) API管理系统310,查看其他记录,以确定与目标API关联的API,并查看与API关联的信 息,以生成补充源代码;(F)使用本文所公开的方法的组合,但(A)及其它自动方法除外, 以提供供用户选择的缩小列表,或(G)使用本文所公开的方法及其它自动方法的组合,以 生成补充源代码。因此,API管理系统310能够在协助用户方面实现高度自动化。在一些实 施例中,API管理系统310可具有存储在存储器中或远程存储在数据库330中的指令,该指 令可优化整个步骤635的过程。取决于各种因素,API管理系统310可以选择本文公开的一 些实施例作为步骤635的一部分。例如,当内部前端系统105的用户想要处理运输系统107 的API并开发或测试使用从设备107A-107C发送的数据的应用时,用户可能希望为每种类型 的移动设备107A-107C创建单独的程序,以便这些程序能够更好地使用来自设备的不同类型 的数据。此外,用户可能希望加入与SAT系统101有关的某些功能,以改进应用。在这种情 况下,API管理系统310可(A)根据与运输系统的目标API关联的信息和使用API的记录 来判断用户可能需要访问107A-107C和SAT系统101的哪些部分;(B)根据目标API和关 联的API的访问信息,确定用户能够访问;和(C)已基于存储在存储器中的指令确定所生 成的文档、源代码和补充源代码没有超过对用户来说太多的某一阈值,并且基于API的记录 是受欢迎的。然后,API管理系统310可以继续以提供与系统107的目标API、设备107A-107C 和SAT系统101的API关联的用户文档、源代码和补充源代码,而无需进一步要求用户查找 或选择。
虽然已结合其具体实施例展示和描述了本公开,但应理解的是,本公开可以在其他环 境中不经修改地实施。为说明起见,提出了上述说明。它不是详尽的,并且不限于所公开的 精确形式或实施例。通过考虑所公开的实施例的说明书和实践,对本领域技术人员来说,修 改和调整将是显而易见的。此外,尽管所公开的实施例的多个方面被描述为存储在存储器中, 但本领域技术人员应当理解,这些方面也可以存储在其他类型的计算机可读介质中,例如辅 助存储设备,例如硬盘或CD ROM,或RAM或ROM的其他形式、USB介质、DVD、蓝光(Blu-ray)或其他光驱动介质。
基于书面描述和公开方法的计算机程序属于经验丰富的开发人员的技能范围。各种程 序或程序模块可以使用本领域技术人员已知的任何技术创建,或者可以结合现有软件设计。 例如,程序段或程序模块可以在或通过设计.NET Framework,.NET CompactFramework(以 及有关语言,如Visual Basic、C等)。)、Java、C++、Objective-C、HTML、HTML/AJAX组 合、XML或包含Java小程序的HTML。
此外,虽然在此描述了说明性实施例,但本领域技术人员根据本公开理解的任何和所 有实施例的范围,其具有等同要素、修改、省略、组合(例如,各种实施例的方面)、修改和 /或修改。权利要求中的限定应根据权利要求中使用的语言作广义解释,而不限于本说明中所 述的实例或在答辩本申请期间的实例。这些例子应被解释为非排他性的。此外,可以以任何 方式修改所公开的方法的步骤,包括通过重新排序步骤和/或插入或删除步骤。因此,本说明 和实例仅被视为说明性的,其真正的范围和精神由下列权利要求及其全部等同范围表示。

Claims (20)

1.一种用于管理应用程序编程接口(API)信息的计算机实现的系统,所述系统包括:
至少一个处理器;
存储与API关联的数据的API数据库,每个API与至少一个计算机系统关联,每个计算机系统可通过相应的API与其他计算系统连接;和
包含指令的至少一个存储器,当所述指令由所述至少一个处理器执行时,使所述处理器执行操作,包括:
从与第一计算机系统关联的用户设备接收输入,所述输入不包括第二计算机系统的身份;
基于所述用户的权限级别,排除与所述用户设备的用户无法访问的计算机系统关联的API;
基于所述输入确定目标API,所述目标API为所述第二计算机系统的API;
确定所述用户设备的用户是否能够访问目标API;
如果确定所述用户能够访问所述目标API,则从所述API数据库检索所述目标API的文档;和
向所述用户设备提供检索到的目标API的文档。
2.根据权利要求1所述的计算机实现的系统,其中,所述输入包括用于对API进行分类的至少一个条件。
3.根据权利要求1所述的计算机实现的系统,其中:
所述API数据库存储搜索历史;和
所述操作还包括在所述搜索历史中记录所述用户的所述输入。
4.根据权利要求3所述的计算机实现的系统,其中,确定所述目标API包括确定所述API数据库中的哪一个API满足所述输入的所述至少一个条件。
5.根据权利要求4所述的计算机实现的系统,其中,确定所述API中的哪一个API满足所述至少一个条件包括以下至少一个:
基于用户从满足所述输入的所述API中选择所述目标API来确定;
基于满足所述输入的API的使用记录来确定;或
基于搜索历史来确定。
6.根据权利要求1所述的计算机实现的系统,其中,确定所述用户设备的所述用户是否能够访问所述目标API包括:从与存储在所述API数据库中的所述目标API关联的数据中确定所述目标API对所有用户开放或对所述用户开放。
7.根据权利要求1所述的计算机实现的系统,其中,确定所述用户设备的所述用户是否能够访问所述目标API包括:与所述目标API进行通信以确定用户权限。
8.根据权利要求1所述的计算机实现的系统,其中,所述操作还包括:
为所述用户生成与所述目标API关联的第一源代码;和
向所述用户设备提供所述第一源代码。
9.根据权利要求8所述的计算机实现的系统,其中,生成所述第一源代码还包括:
基于所述用户输入来确定所述目标API的一部分;和
生成与所述目标API的所述一部分关联的第一源代码。
10.根据权利要求9所述的计算机实现的系统,其中,确定所述目标API的所述一部分还基于用户对所述目标API的所述一部分的选择。
11.根据权利要求9所述的计算机实现的系统,其中,确定所述目标API的所一述部分还基于以下至少一个:
对所述目标API的所述一部分的选择,所述选择被添加到使用所述目标API的记录中,所述记录被存储在所述API数据库中;
所述用户使用所述目标API的记录;或
多个用户使用所述目标API的记录。
12.根据权利要求9所述的计算机实现的系统,其中,生成所述输出代码还包括:
生成与不同于所述目标API的至少一个API关联的补充源代码,所述补充源代码被添加到所述第一源代码中。
13.根据权利要求12所述的计算机实现的系统,其中,与所述目标API不同的所述至少一个API,由以下至少一个确定:
与所述目标API关联的所述数据;
与所述目标API关联的文档;或
所述用户使用所述目标API的记录。
14.根据权利要求1所述的计算机实现的系统,其中,所述操作还包括:
基于输入向所述用户设备提供所述API数据库中的API列表。
15.一种计算机实现的方法,用于管理存储在API数据库中的与API关联的API数据,每个API与至少一个计算机系统关联,所述方法包括:
从与第一计算机系统关联的用户设备接收输入,所述输入不包括第二计算机系统的身份;
基于所述用户的权限级别,排除与所述用户设备的用户无法访问的计算机系统关联的API;
基于所述输入确定目标API,所述目标API为所述第二计算机系统的API;
确定所述用户设备的用户能够访问所述目标API;
如果确定所述用户能够访问所述目标API,则从所述API数据库检索所述目标API的文档;和
向所述用户设备提供检索到的目标API的文档。
16.根据权利要求15所述的计算机实现方法,其中,所述方法还包括:
为所述用户生成与所述目标API关联的第一源代码;和
向所述用户设备提供所述第一源代码。
17.根据权利要求15所述的计算机实现方法,其中,所述方法还包括:
接收在所述API数据库中注册所述计算机系统之一的API的请求;
接收所述请求中与所述API关联的数据,并将接收到的数据存储在所述API数据库中;和
基于所述请求生成与所述API关联的文档,并将所述文档存储在所述API数据库中。
18.根据权利要求15所述的计算机实现方法,其中,所述方法还包括:
接收对存储在所述API数据库中的所述API之一的数据或文档进行更新的请求;
基于所述请求更新所述API的所述数据或文档;和
向与所述计算机系统关联的用户设备发送通知。
19.根据权利要求15所述的计算机实现方法,其中,所述方法还包括:
如果确定所述用户无法访问所述目标API,则指示所述用户向所述目标API或所述第二计算机系统中的至少一个发送请求。
20.一种用于管理应用程序编程接口(API)信息的计算机实现的系统,所述系统包括:
至少一个处理器;
存储与API关联的数据的API数据库,每个API与至少一个计算机系统关联,每个计算机系统可通过相应的API与其他计算系统连接;和
包含指令的至少一个存储器,当所述指令由所述至少一个处理器执行时,使所述处理器执行操作,包括:
从与第一计算机系统关联的用户设备接收输入,所述输入不包括第二计算机系统的身份;
基于所述用户的权限级别,排除与所述用户设备的用户无法访问的计算机系统关联的API;
基于所述输入确定目标API,所述目标API为所述第二计算机系统的API;
确定所述用户设备的用户是否能够访问所述目标API;
如果确定所述用户能够访问所述目标API,则从所述API数据库检索所述目标API的文档;和
向所述用户设备提供检索到的目标API的文档;
接收在所述API数据库中注册所述计算机系统之一的API的请求;
将与所述API关联的数据存储在所述API数据库中;
基于所述请求生成与所述API关联的文档,并将所述文档存储在所述数据库中;
接收更新存储在所述API数据库中的所述API之一的数据或文档的请求;
基于所述请求更新所述API的所述数据或文档;和
响应于所述请求,向与所述计算机系统关联的用户设备发送通知。
CN201911061857.3A 2019-03-11 2019-11-01 管理应用程序编程接口信息的系统和方法 Active CN110968626B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/298,617 2019-03-11
US16/298,617 US10467062B1 (en) 2019-03-11 2019-03-11 Systems and methods for managing application programming interface information

Publications (2)

Publication Number Publication Date
CN110968626A true CN110968626A (zh) 2020-04-07
CN110968626B CN110968626B (zh) 2023-10-24

Family

ID=68392034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911061857.3A Active CN110968626B (zh) 2019-03-11 2019-11-01 管理应用程序编程接口信息的系统和方法

Country Status (9)

Country Link
US (3) US10467062B1 (zh)
JP (1) JP6971404B2 (zh)
KR (3) KR102236318B1 (zh)
CN (1) CN110968626B (zh)
AU (1) AU2020238942B2 (zh)
PH (1) PH12020551788A1 (zh)
SG (1) SG11202011424QA (zh)
TW (1) TWI743699B (zh)
WO (1) WO2020183371A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021203817A1 (zh) * 2020-04-08 2021-10-14 中兴通讯股份有限公司 开放接口的管理方法、电子设备以及存储介质
CN113791780A (zh) * 2021-08-31 2021-12-14 东风柳州汽车有限公司 物料配送信息展示方法、装置、设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467062B1 (en) 2019-03-11 2019-11-05 Coupang, Corp. Systems and methods for managing application programming interface information
US20210182770A1 (en) * 2019-12-13 2021-06-17 Coupang, Corp. Systems and methods for automated delivery worker scheduling
US10783174B1 (en) 2020-03-20 2020-09-22 Coupang Corp. Systems and methods for collection, management, and distribution of data using a crowdsourced knowledge database
US11687640B2 (en) * 2020-07-17 2023-06-27 Jpmorgan Chase Bank, N.A. Method and apparatus for automating process of receiving verification documentation
CN112506587B (zh) * 2020-11-26 2023-03-24 深圳软通动力信息技术有限公司 Api部署监控的方法、系统、电子装置和存储介质
US11531525B2 (en) * 2021-04-23 2022-12-20 Jpmorgan Chase Bank, N.A. System and method for packaging standalone application modules into re-usable application and infrastructure resources
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
KR102584597B1 (ko) * 2021-11-17 2023-10-05 주식회사 토브데이터 데이터베이스에 대한 api 기반의 접근 제어 시스템 및 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168957A1 (en) * 2005-11-08 2007-07-19 Red Hat, Inc. Certifying a software application based on identifying interface usage
US20130132584A1 (en) * 2011-11-17 2013-05-23 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
US20140317641A1 (en) * 2013-04-22 2014-10-23 Microsoft Corporation Controlling runtime access to application programming interfaces
US20160283289A1 (en) * 2015-03-27 2016-09-29 Ca, Inc. Graphical Mapping of Application Programming Interface Parameters
US20170010902A1 (en) * 2013-09-30 2017-01-12 MuleSoft, Inc. Api notebook tool
US20170102925A1 (en) * 2014-03-26 2017-04-13 Syed Adeel Ali Automatch process and system for software development kit for application programming interface
CN109416785A (zh) * 2015-12-03 2019-03-01 创新策略管理怡安新加坡中心私人有限公司 用于提供促进实时自动协商、基准、合规和审计的安全可共享的基础设施的方法和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915106A (en) * 1997-03-20 1999-06-22 Ricoh Company, Ltd. Method and system for operating a scanner which emulates a disk drive
US6405216B1 (en) 1999-09-17 2002-06-11 International Business Machines Corporation Internet-based application program interface (API) documentation interface
US7444314B2 (en) * 2003-12-01 2008-10-28 International Business Machines Corporation Methods and apparatus for business rules authoring and operation employing a customizable vocabulary
EP1716483A4 (en) * 2004-01-15 2008-07-16 Topcoder Inc SYSTEMS AND METHODS FOR SOFTWARE DEVELOPMENT
US7788640B2 (en) * 2004-12-28 2010-08-31 Microsoft Corporation Using code analysis to generate documentation
US7801880B2 (en) 2005-03-29 2010-09-21 Microsoft Corporation Crawling databases for information
US7596540B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US7895579B2 (en) * 2006-06-16 2011-02-22 Microsoft Corporation Automated method and system for collecting and reporting API performance profiles
US8458802B2 (en) * 2011-04-02 2013-06-04 Intel Corporation Method and device for managing digital usage rights of documents
US8893077B1 (en) * 2011-10-12 2014-11-18 Google Inc. Service to generate API libraries from a description
US9292363B2 (en) * 2014-03-05 2016-03-22 International Business Machines Corporation Predicting application programming interface consumption using social networks
CN104156468B (zh) * 2014-08-22 2018-09-04 北京智谷睿拓技术服务有限公司 Api推荐方法及api推荐装置
US9396091B2 (en) * 2014-09-29 2016-07-19 Sap Se End-to end, lifecycle aware, API management
WO2017173141A1 (en) * 2016-03-31 2017-10-05 JIBO, Inc. Persistent companion device configuration and deployment platform
TWI721319B (zh) * 2016-06-10 2021-03-11 美商利魁得股份有限公司 資料儲存系統中的多埠中介件架構
US11074067B2 (en) * 2017-07-27 2021-07-27 Tibco Software Inc. Auto-generation of application programming interface (API) documentation via implementation-neutral analysis of API traffic
US10545730B2 (en) * 2018-05-07 2020-01-28 Red Hat, Inc. Automatically generating code for application programming interfaces
CN108959076A (zh) 2018-06-25 2018-12-07 浙江网新恒天软件有限公司 一种api在线调试方法
US10761838B2 (en) * 2018-07-31 2020-09-01 Dell Products L.P. Generating unified and dynamically updatable application programming interface documentation from different sources
US11042427B2 (en) * 2018-10-31 2021-06-22 Fujitsu Limited Automated consolidation of API specifications
US10467062B1 (en) * 2019-03-11 2019-11-05 Coupang, Corp. Systems and methods for managing application programming interface information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168957A1 (en) * 2005-11-08 2007-07-19 Red Hat, Inc. Certifying a software application based on identifying interface usage
US20130132584A1 (en) * 2011-11-17 2013-05-23 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
US20140317641A1 (en) * 2013-04-22 2014-10-23 Microsoft Corporation Controlling runtime access to application programming interfaces
US20170010902A1 (en) * 2013-09-30 2017-01-12 MuleSoft, Inc. Api notebook tool
US20170102925A1 (en) * 2014-03-26 2017-04-13 Syed Adeel Ali Automatch process and system for software development kit for application programming interface
US20160283289A1 (en) * 2015-03-27 2016-09-29 Ca, Inc. Graphical Mapping of Application Programming Interface Parameters
CN109416785A (zh) * 2015-12-03 2019-03-01 创新策略管理怡安新加坡中心私人有限公司 用于提供促进实时自动协商、基准、合规和审计的安全可共享的基础设施的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021203817A1 (zh) * 2020-04-08 2021-10-14 中兴通讯股份有限公司 开放接口的管理方法、电子设备以及存储介质
CN113791780A (zh) * 2021-08-31 2021-12-14 东风柳州汽车有限公司 物料配送信息展示方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US10956233B2 (en) 2021-03-23
KR20220018537A (ko) 2022-02-15
SG11202011424QA (en) 2020-12-30
WO2020183371A1 (en) 2020-09-17
KR20200108753A (ko) 2020-09-21
KR20210038524A (ko) 2021-04-07
CN110968626B (zh) 2023-10-24
KR102359069B1 (ko) 2022-02-08
TW202046092A (zh) 2020-12-16
JP2021513133A (ja) 2021-05-20
JP6971404B2 (ja) 2021-11-24
US20210240549A1 (en) 2021-08-05
AU2020238942A1 (en) 2020-11-19
AU2020238942B2 (en) 2021-06-17
KR102236318B1 (ko) 2021-04-06
US10467062B1 (en) 2019-11-05
PH12020551788A1 (en) 2021-06-21
US20200293384A1 (en) 2020-09-17
TWI743699B (zh) 2021-10-21
US11755386B2 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
CN110968626B (zh) 管理应用程序编程接口信息的系统和方法
KR102370365B1 (ko) 효율적인 박스 패킹 및 시각화를 위한 시스템 및 방법
KR20200108752A (ko) 픽업 프로세스를 보조하기 위한 컴퓨터화된 시스템 및 방법
KR102548216B1 (ko) 비용 최적화된 구성을 생성하기 위한 패키지 구성의 시뮬레이션을 위한 시스템 및 방법
CN110796407A (zh) 电子库存跟踪系统和相关用户界面
US11763256B2 (en) Computerized systems and methods for managing inventory by determining product prices based on product characteristics
US11763255B2 (en) Computerized systems and methods for managing inventory by grading returned products
KR20210017951A (ko) 재고 관리를 위해 반품 아이템을 풀필먼트 센터로 이송하기 위한 컴퓨터-구현 시스템 및 방법
JP7258058B2 (ja) 保証配送時間の選択を表示および決定するためのコンピュータ化されたシステムおよび方法
KR102307450B1 (ko) 요청된 분리된 정보를 통합하기 위한 웹-브라우저 플러그인
TW202139082A (zh) 電子式判定實時登記的電腦實行系統以及方法
TW202143131A (zh) 用於線上顧客協助的電腦實行系統及電腦實行方法
WO2022123493A1 (en) Computerized systems and methods for predicting and managing scrap

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