Patentable/Patents/US-8843941
US-8843941

Adaptable application programming interfaces and specification of same

PublishedSeptember 23, 2014
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Aspects of the disclosure relate to defining and/or specifying an application programming interface (API) between a client and a computing device (such as a server) in a manner that the client, the computing device, or both, can evolve independently while preserving inter-operability.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method, comprising: accessing, by a computing device, an application domain object model; mapping, at the computing device, the application domain object model to a hypermedia application programming interface (API) according to at least one of a plurality of conventions for data representations and method representations; and providing the hypermedia API to a client device, wherein the plurality of conventions are configured to allow the client device to be compatible with a change to at least one of the data representations and the method representations by the computing device without a corresponding change to the client device, wherein the change to at least one of the data representations and the method representations comprises at least one of a change of data provided by the hypermedia API to a link to the data and a change of the link to data provided by the hypermedia API to the data.

2

2. The method of claim 1 , wherein accessing, by the computing device, the application domain object model comprises accessing data indicative of a class hierarchy representative of specific functionality associated with the application domain object model.

3

3. The method of claim 1 , wherein mapping, at the computing device, the application domain object model to the hypermedia API comprises creating, according to the at least one of the plurality of conventions, a tree-structure extensible API.

4

4. The method of claim 1 , wherein mapping, at the computing device, the application domain object model to the hypermedia API comprises creating, according to the at least one of the plurality of conventions, a tree-structure extensible API having at least one media affordance.

5

5. The method of claim 1 , wherein mapping, at the computing device, the application domain object model to the hypermedia API comprises representing a string literal in the application domain object model with a hypermedia text node.

6

6. The method of claim 1 , wherein mapping, at the computing device, the application domain object model to the hypermedia API comprises representing an object with a markup node configured to contain one or more descendent nodes.

7

7. The method of claim 6 , wherein mapping, at the computing device, the application domain object model to the hypermedia API further comprises representing an instance method of the object with a method name and a form associated with the method name, the form being a descendent node of the markup node and having one or more hypermedia input elements for passing one or more arguments to the instance method, each of the one or more hypermedia input elements corresponding to at least one parameter name of the instance method.

8

8. The method of claim 6 , wherein mapping, at the computing device, the application domain object model to the hypermedia API further comprises representing an instance method of the object with a method name and a link to a form associated with the method name, the link being a descendent node of the markup node, and the form being uniquely identifiable and having one or more hypermedia input elements for passing one or more arguments to the instance method, each of the one or more hypermedia input elements corresponding to at least one parameter name of the instance method.

9

9. The method of claim 6 , wherein mapping, at the computing device, the application domain object model to the hypermedia API further comprises representing an instance method of the object with a method name and a link to a form associated with the method name, the form being part of an object's representation present at an entry point of the hypermedia API and having (i) a hypermedia input element identifying the object and (ii) one or more hypermedia input elements for passing one or more arguments to the instance method, each of the one or more hypermedia input elements corresponding to at least one parameter name of the instance method.

10

10. The method of claim 6 , wherein mapping, at the computing device, the application domain object model to the hypermedia API further comprises representing an instance method of the object with a method name and a link to a form associated with the method name, the form being linked from an object's representation present at an entry point of the hypermedia API, the form having a hypermedia input element identifying the object, and one or more hypermedia input elements for passing one or more arguments to the instance method, each of the one or more hypermedia input elements corresponding to at least one parameter name of the instance method.

11

11. A device, comprising: a memory comprising computer-executable instructions encoded thereon; and a processor functionally coupled to the memory and programmed, by the computer- executable instructions, to provide an evolvable hypermedia application programming interface (API) to a device, wherein the evolvable hypermedia API is based on a plurality of conventions configured to allow the device to be compatible with a change to at least one of data representations of the evolvable hypermedia API and method representations of the evolvable hypermedia API without a corresponding change to the device, and wherein the change to at least one of the data representations and the method representations comprises a change in a hierarchal position of a control of the evolvable hypermedia API, and to update at least one uniform resource identifier referenced in the evolvable hypermedia API.

12

12. The device of claim 11 , wherein the evolvable hypermedia API comprises a tree-structured extensible media type with at least one hypermedia affordance.

13

13. The device of claim 11 , wherein the evolvable hypermedia API further comprises one or more of an extensible hypertext markup language (XHTML)-based RESTful API, an Atom RESTful API, or a hypertext application language (HAL)-based RESTful API.

14

14. The device of claim 11 , wherein the evolvable hypermedia API comprises a tree structured extensible media type, and wherein the evolvable hypermedia API comprises one or more of extended markup language (XML)-based API or a JavaScript Object Notation (JSON)-based API.

15

15. The device of claim 11 , wherein the processor is further programmed by the computer-executable instructions to provide a resource according to at least one of an inline and concrete format, a link-based format, or a combination of a link-based format and a concrete format, wherein the concrete format comprises at least one attribute and the link-based format comprises at least one hypermedia link.

16

16. A device, comprising: a memory comprising computer-executable instructions encoded thereon; and a processor functionally coupled to the memory and programmed, by the computer-executable instructions, to dismiss elements in a data representation in response to a method call referenced in an evolvable hypermedia application programming interface (API), the evolvable hypermedia API being a tree-structured extensible media type with at least one hypermedia affordance, and to submit a form input with at least one default value for non-documented semantics in the evolvable hypermedia API.

17

17. The device of claim 16 , the processor being further configured, by the computer-executable instructions, to modify a form input having a documented semantics in the hypermedia API.

18

18. The device of claim 16 , the processor being further configured, by the computer-executable instructions, to access a nested descendent of an object beyond a direct child of the object.

19

19. The device of claim 16 , the processor being further configured, by the computer-executable instructions, to access an object attribute by following a hypermedia link to an object representation in the evolvable hypermedia API.

20

20. The device of claim 16 , the processor being further configured, by the computer-executable instructions, to access an object identifier from an object representation in the evolvable hypermedia API.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

August 20, 2012

Publication Date

September 23, 2014

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Adaptable application programming interfaces and specification of same” (US-8843941). https://patentable.app/patents/US-8843941

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.