Method of processing javascript (JS) API requests

US9558020B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9558020-B2
Application numberUS-201414490643-A
CountryUS
Kind codeB2
Filing dateSep 18, 2014
Priority dateSep 17, 2014
Publication dateJan 31, 2017
Grant dateJan 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments of the invention provide a novel server for processing application programming interface (API) requests. In some embodiments, the API server is written in JavaScript. For example, in some embodiments, the API-accessible objects of this server are each defined in terms of a JavaScript file and a JSON (JavaScript Object Notation) file. At runtime, a runtime processor instantiates each JavaScript object from its associated JavaScript and JSON files. Once instantiated, the JavaScript object can be used to process API requests that refer to the JavaScript object. Some embodiments use novel JSON file structures that allow these embodiments to define rich JavaScript models.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of processing an application programming interface (API) request, the method comprising: receiving, at a runtime processor of an API server, the API request from a device requesting data, the requested data to be obtained from a remote data source; in response to the receipt of the API request, instantiating a JavaScript (JS) object from a corresponding JS model description comprising a JS file that stores a behavioral description of the JS object and a JS Object Notation (JSON) file that stores a property description of the JS object; instantiating a validator module and an Access Control List (ACL) rule processor module within the runtime processor for the instantiated JS object; and directing the JS object to process the API request and to provide the requested data from the remote data source, wherein the JS object uses the validator and ACL rule processor to process validation and ACL rules associated with the requested data, wherein the validation and ACL rules are implemented as function calls so that the validator and ACL rule processor process the validation and ACL rules before or after the JS object processes the API request. 2. The method of claim 1 , wherein the JS and JSON files have names that create an association between the two files, said JS model defined based on the association between the JS and JSON files. 3. The method of claim 1 further comprising instantiating the JS object on a local storage of the API server based on the behavioral description of the JS object in the JS file and the property description of the JS object in the JSON file. 4. The method of claim 3 , wherein the JS object is instantiated before receiving the API request. 5. The method of claim 3 , wherein the JS object is instantiated after receiving the API request. 6. The method of claim 1 , wherein the remote data source comprises a data storage, wherein the JSON file includes a description of the data storage. 7. The method of claim 6 , wherein the description of the data storage comprises a type of the data storage. 8. The method of claim 6 , wherein the description of the data storage comprises a set of attributes that identifies the data storage in terms of at least two of the following: data storage location, name, fields, and field attributes. 9. The method of claim 1 , wherein the remote data source is a first data storage, wherein directing the JS object to process the API request comprises having the JS object retrieve data from the first data storage and a second data storage, wherein the JSON file includes a description of each of the first and second data storages, wherein the description of each data storage comprises at least two of the following data storage attributes: location, name, one or more fields, and attributes of each specified field. 10. The method of claim 9 , wherein the first data storage is a relational database (RDB), while the second data storage is not an RDB. 11. The method of claim 9 , wherein the first data storage is provided by a first vendor, while the second data storage is provided by a second vendor. 12. The method of claim 1 , wherein the JSON file comprises a description of a control logic for restricting access to at least one data tuple in the requested data that is available through the API request to the JS object, wherein directing the JS object to process the API request comprises having the API request analyze the control logic to determine whether the data tuple is available through the API request. 13. The method of claim 12 , wherein the control logic comprises the validation and ACL rules, wherein at least one validation rule ensures that the data tuple exchanged with the JS object as part of the API request meets at least one constraint. 14. The method of claim 13 , wherein the validation rule is described in terms of a set of attributes that the data tuple has to meet. 15. The method of claim 13 , wherein the validation rule is expressed in terms of a set of validation parameters that describes the characteristics of the data tuple. 16. The method of claim 12 , wherein the control logic is analyzed by the validator and ACL rule processor. 17. The method of claim 12 , wherein the control logic comprises the validation and ACL rules, wherein at least one ACL rule ensures that the data tuple satisfies a set of access control criteria. 18. The method of claim 17 , wherein the ACL rule is expressed as an array of key-value pairs, each key-value pair expressing one type of access control. 19. The method of claim 17 , wherein different types of access controls that are specified by different key-value pairs comprise two or more of the following: type of access, type of permissions granted, type of user, required type of identifier for the user, and the JS object attribute to which the access control applies. 20. The method of claim 19 , wherein the JS object attribute to which the access control applies comprises one or more properties of the JS object, one or more methods of the JS object, and one or more relations of the JS object. 21. The method of claim 1 , wherein directing the JS object to process the API request comprises having the JS object call the validator to process the validation rules and the rule processor to process the ACL rules before or after processing the API request. 22. The method of claim 1 , wherein the JSON file comprises a description of a set of relationships between the JS object and a set of other JS objects. 23. The method of claim 22 further comprising using the description of the set of relationships to define the set of relationships between the JS object and the set of other JS objects. 24. The method of claim 23 , wherein the relationships are defined when the JS object is being instantiated. 25. A non-transitory machine readable medium of a server storing a program which, when executed by at least one processing unit of the server, processes an application programming interface (API) request, the program comprising sets of instructions for: receiving, at a runtime processor of the server, the API request from a device requesting data, the requested data to be obtained from a remote data source; in response to the receipt of the API request, instantiating a JavaScript (JS) object from a corresponding JS model description comprising a JS file that stores a behavioral description of the JS object and a JS Object Notation (JSON) file that stores a property description of the JS object; instantiating a validator module and an Access Control List (ACL) rule processor module within the runtime processor for the instantiated JS object; and directing the JS object to process the API request and to provide the requested data from the remote data source, wherein the JS object uses the validator and ACL rule processor to process validation and ACL rules associated with the requested data, wherein the validation and ACL rules are implemented as function calls so that the validator and ACL rule processor process the validation and ACL rules before or after the JS object processes the API request. 26. The non-transitory machine readable medium of claim 25 , wherein the JS and JSON files have names that create an association between the two files, wherein the program further comprises a set of instruction for defining the JS model based on the association between the JS and JSON files.

Assignees

Inventors

Classifications

  • G06F9/541Primary

    via adapters, e.g. between incompatible applications · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • between heterogeneous systems · CPC title

  • Electricity · mapped topic

  • Transaction processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9558020B2 cover?
Some embodiments of the invention provide a novel server for processing application programming interface (API) requests. In some embodiments, the API server is written in JavaScript. For example, in some embodiments, the API-accessible objects of this server are each defined in terms of a JavaScript file and a JSON (JavaScript Object Notation) file. At runtime, a runtime processor instantiates…
Who is the assignee on this patent?
Strongloop Inc, IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/541. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).