Client API Library Generation via Discovery Document Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for representing an interface between a client device and a server-based API are limited in their ability to efficiently generate client libraries that can interface with multiple resources, particularly due to differences in machine-readable languages used for discovery documents and instruction execution.

Innovation Solution

A method where a client device receives a discovery document in a first machine-readable language and executes instructions in a second language to generate a library that enables interfacing with API resources, utilizing a retrieval unit and library building unit to parse and construct the library, potentially using JSON or other formats like XML.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a discovery document is received in a first machine-readable language and instructions are executed in a second machine-readable language to generate a client library, then the ability to interface with multiple API resources is improved, but the complexity of language translation and library generation increases

Engineering Contradiction:
Improveability to interface with multiple API resourcesVSAvoidcomplexity of language translation and library generation
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system uses a discovery document as an intermediary representation that describes API resources in a standardized format. This discovery document serves as a mediator between the server's API definition and the client's library generation process, enabling language-agnostic communication and reducing the complexity of direct translation by providing a common intermediate representation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system generates client libraries by copying and adapting the API resource descriptions from the discovery document into executable code structures in the target language. This copying process preserves the API interface definitions while translating them into the specific programming language required by the client device, enabling reuse of the same API specification across multiple languages.

Inventive Principle:
Principle #26Copying

2Productivity

If client libraries are generated to interface with API resources, then communication efficiency between client and server is improved, but the time required for library generation and setup increases

Engineering Contradiction:
Improvecommunication efficiency between client and serverVSAvoidtime required for library generation and setup
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary action by generating the complete client library before the actual API communication occurs. The library is precompiled with all necessary interface definitions, data structures, and communication protocols based on the discovery document, so that when the client needs to communicate with the server, the infrastructure is already in place and ready for immediate use.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables self-service by allowing the client device to automatically generate its own libraries using the discovery document without requiring manual intervention or configuration. The automated library generation process eliminates the need for developers to manually write client code, reducing setup time while maintaining communication efficiency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8972489B2Providing a client interface for a server-based web application programming interface
Publication Date: 2015.03.03 GOOGLE LLC
  • US8972489B2 patent drawing
  • US8972489B2 patent drawing
  • US8972489B2 patent drawing

AI summary

Disclosed methods, systems, and articles of manufacture, including processor-readable mediums, relate to providing a client interface for a server-based web application programming interface (API). In a disclosed method, a client device receives a first discovery document that is represented in a first machine-readable language and that includes information describing a plurality of resources of a first API of a server device. Based at least in part on the first discovery document, the client device executes a first set of instructions represented in a second machine-readable language that is different from the first machine-readable language, to generate a first library that includes instructions represented in the second machine-readable language and that enables the client device to interface with at least one of the plurality of resources of the first API.