Automated SDK Artifact Generation from API Specifications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The development of web services and applications faces logistical challenges when changes occur in the underlying API, requiring updates to code, documentation, client libraries, and testing to ensure compatibility and accuracy, which can be time-consuming and inefficient, especially when supporting multiple client-side programming languages.

Innovation Solution

Automating the build process using software tools to generate test cases and incorporate test results into documentation, creating up-to-date SDK artifacts that include client libraries and wiretraces, ensuring that the generated code meets API specifications and provides accurate documentation for developers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual updates are performed for API changes, then accuracy of documentation and code can be maintained, but time consumption and development efficiency increase significantly

Engineering Contradiction:
Improveaccuracy of documentation and codeVSAvoidtime consumption for updates
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically generating test cases, client library code, and documentation updates before manual review is needed. The automated build process proactively creates all necessary artifacts from API specifications, reducing the time required for manual updates while maintaining accuracy through systematic code generation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses templates to generate client library code and documentation, creating accurate copies of required artifacts based on API specifications. By copying proven code patterns and documentation structures, the system maintains consistency and accuracy while dramatically reducing the time needed to create updated materials.

Inventive Principle:
Principle #26Copying

2Reliability

If comprehensive testing is performed for API changes, then reliability of service updates is improved, but complexity of the build process increases

Engineering Contradiction:
Improvereliability of service updatesVSAvoidcomplexity of the build process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The testing process is segmented into automated test case generation, execution, and reporting phases. By dividing the comprehensive testing process into discrete automated steps, the system achieves thorough validation of API changes while managing build process complexity through modular, manageable test components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs self-service testing by automatically generating and executing test cases without manual intervention. The automated build process independently validates service updates through programmed test suites, ensuring reliability while reducing the apparent complexity for developers who don't need to manually design and run each test.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If multiple client libraries are maintained for different programming languages, then versatility and client support are improved, but maintenance complexity and time requirements increase

Engineering Contradiction:
Improvesupport for multiple programming languagesVSAvoidmaintenance complexity across languages
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The automated build system provides multi-functionality by generating client library code for multiple programming languages from a single API specification. This universal approach allows the same build process to produce Java, Python, C#, and other language-specific libraries, maintaining versatility while reducing maintenance complexity through centralized specification-driven generation.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system changes parameters by adapting code generation templates to different programming languages while maintaining the same underlying API specification. By modifying language-specific parameters in templates rather than maintaining separate generation logic, the system supports multiple languages with reduced complexity, as changes to the API specification automatically propagate to all language versions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8949792B2Methods and systems for data service development
Publication Date: 2015.02.03 ADOBE INC
  • US8949792B2 patent drawing
  • US8949792B2 patent drawing
  • US8949792B2 patent drawing

AI summary

Development of data services can be enhanced through the use of methods and systems that automate aspects of the build process. Particularly, software can be used to automatically generate test cases and incorporate test results into documentation as part of the build process based on an updated Application Programming Interface (API) specification to generate up-to-date and accurate Software Development Kit (SDK) artifacts. A method can comprise accessing data defining an API for a data service, such as Web Application Description Language (WADL) or Web Service Description Language (WSDL) data. The method can further comprise identifying a test case for a service call that can be made via the API based on the data defining the API, and generating test code, the test code configured to evaluate the test case by making the service call. The test code can be used for evaluating the test case(s) in order to ensure requests and/or responses are consistent with the API definition.