Link Registry for Dynamic RESTful API Extension

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current RESTful APIs face challenges in practical extensibility after initial deployment, as existing technologies do not provide clear methods for extending APIs beyond returning hyperlinks and executable code.

Innovation Solution

A link registry system is introduced on server computers to store and manage link-registry entries, allowing for the addition, removal, and modification of links in response messages, enabling seamless extension of RESTful APIs without significant computational or development overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If RESTful APIs are designed to be extensible after deployment, then adaptability is improved, but device complexity increases due to the need for link registries and additional management infrastructure

Engineering Contradiction:
ImproveAPI extensibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a link registry as an intermediary component that mediates between the API server and clients. The link registry stores and manages extensibility information (links to additional resources, executable code) that can be dynamically added to API responses without modifying the core API server logic. This intermediary layer enables API extension while keeping the server implementation relatively simple and maintainable.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If link registries are used to store and manage additional links in response messages, then adaptability is improved, but use of energy increases due to additional data storage and processing requirements

Engineering Contradiction:
ImproveAPI extensibilityVSAvoidcomputational overhead
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The link registry performs preliminary action by pre-storing extensibility information (links, code) in a structured format before it is needed. When an API response is generated, the system can quickly retrieve and attach the appropriate pre-prepared extensibility data without performing complex computations at request time. This reduces the computational overhead during actual API operations.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the uniform-interface constraint is applied to decouple client and server functionality, then ease of operation is improved, but loss of information increases because context must be maintained by clients across multiple requests

Engineering Contradiction:
Improveimplementation simplicityVSAvoidcontext information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent implements feedback by embedding hyperlinks within API response messages that reference additional resources and functionality. These links provide feedback to clients about available extensions and additional operations without requiring the server to maintain state information. Clients can follow these links to discover and access extended functionality, with the context information preserved in the link metadata rather than server memory.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10331504B2Method and system for extending application programming interfaces
Publication Date: 2019.06.25 VMWARE INC
  • US10331504B2 patent drawing
  • US10331504B2 patent drawing
  • US10331504B2 patent drawing

AI summary

The current document discloses methods and systems for providing extensions to web-services APIs, including RESTful APIs, and to extend other types of interfaces that define client/server-based distributed computing systems. The disclosed methods and systems are facilitated by, and include, respectively, a link registry within one or more server computers, or that is accessible to the one or more server computers, that together provide a web service accessed through an API. The link registry stores link-registry entries, each of which specifies one or more links to be added to response messages associated with a particular resource. The link registry, like any resource, is associated with a set of verbs, or functions, that allow entries to be added to, and removed from, the link registry and that allow entries to be modified. The link registry can be used both by server-resident functionality as well as by functionality within external computers to extend an existing web service or API.