IP Library Granted Patent US 10,194,001
Granted Patent B1
US 10,194,001 · App. 14/723,240 · Granted Jan 29, 2019

Automatic discovery of API information

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,194,001
App. No.
14/723,240
Granted
Jan 29, 2019
Kind
B1
Abstract

Automatic discovery of API information is disclosed, including: receiving a transaction; obtaining a determined signature from the transaction; and determining that the determined signature comprises a candidate signature to potentially add to an application programming interface (API) model.

Claims (59)

1. A system, comprising:

an external interface configured to exchange information with a client;

an internal interface configured to exchange information with a backend system; and

a processor configured to perform operations comprising:

receiving, at a server and through the external interface, a transaction that is an application programming interface (API) request sent over a network, where the API request includes an indication of an operation type of an operation to be performed and an indication of a path of the operation;

sending the API request to the backend system through the internal interface;

receiving a response to the API request from the backend system through the internal interface;

determining, by the server and from the transaction, a signature that represents a combination of the operation type of the operation to be performed indicated by the API request and the path of the operation indicated by the API request; and

in response to a determination that a combination of the operation type of the operation to be performed and the path of the operation is not found in a classification map associated with an API model, determining whether a status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid; and

in response to a determination that the status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid, adding the signature that represents the operation type of the operation and the path of the operation indicated by the API request to the API model;

receiving, at the server and through the external interface, a second transaction that is a second application programming interface (API) request sent over the network;

determining, by the server and from the second transaction, a second signature determined from the second transaction matches the signature added to the API model; and

in response to determining, by the server and from the second transaction, the second signature determined from the second transaction matches the signature added to the API model, applying a run-time policy to the second transaction that is not applied to the transaction that was previously received.

2. The system of claim 1 , wherein the determined signature comprises a set of attributes that identifies the transaction.

3. The system of claim 2 , wherein the set of attributes includes one or more of the following: a resource path pattern, an operation, a header, and a body element.

4. The system of claim 1 , wherein determining that the signature that represents a combination of the operation type of the operation to be performed indicated by the API request and the path of the operation indicated by the API request comprises:

comparing the signature to the classification map, wherein the classification map is determined from the API model;

determining that the signature is not found in the classification map; and

determining that the signature comprises the candidate signature.

5. The system of claim 4 , the operations comprising adding the candidate signature to the API model without user intervention.

6. The system of claim 1 , the operations comprising in the event that the status code comprises a value that indicates that the API request is valid:

presenting the candidate signature at a user interface; and

receiving a user input to add the candidate signature to the API model.

7. The system of claim 1 , the operations comprising in the event that the status code comprises a value that indicates that the API request is valid, adding the candidate signature to the API model without user intervention.

8. The system of claim 1 , the operations comprising in the event that the status code comprises a value that indicates that the API request is invalid, discarding the candidate signature.

9. The system of claim 1 , the operations comprising in the event that the status code comprises a value that indicates that the API request is invalid, determining to potentially add the candidate signature to the API model based at least in part on a stored user configuration.

10. The system of claim 1 , wherein the status code included in the response comprises a hypertext transfer protocol (HTTP) 2xx status code.

11. The system of claim 1 , the operations comprising

updating the classification map in response to the signature determined from the transaction being added to the API model.

12. A computer-implemented method comprising:

receiving, at a server and through an external interface, a transaction that is an application programming interface (API) request sent over a network, where the API request includes an indication of an operation type of an operation to be performed and an indication of a path of the operation:

sending the API request to a backend system through an internal interface;

receiving a response to the API request from the backend system through the internal interface;

determining, by the server and from the transaction, a signature that represents a combination of the operation type of the operation to be performed indicated by the API request and the path of the operation indicated by the API request: and

in response to a determination that a combination of the operation type of the operation to be performed and the path of the operation is not found in a classification map associated with an API model, determining whether a status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid; and

in response to a determination that the status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid, adding the signature that represents the operation type of the operation and the path of the operation indicated by the API request to the API model;

receiving, at the server and through the external interface, a second transaction that is a second application programming interface (API) request sent over the network;

determining, by the server and from the second transaction, a second signature determined from the second transaction matches the signature added to the API model; and

in response to determining, by the server and from the second transaction, the second signature determined from the second transaction matches the signature added to the API model, applying a run-time policy to the second transaction that is not applied to the transaction that was previously received.

13. The method of claim 12 , wherein the determined signature comprises a set of attributes that identifies the transaction.

14. The method of claim 13 , wherein the set of attributes includes one or more of the following: a resource path pattern, an operation, a header, and a body element.

15. The method of claim 12 , wherein determining that the signature that represents a combination of the operation type of the operation to be performed indicated by the API request and the path of the operation indicated by the API request comprises:

comparing the signature to the classification map, wherein the classification map is determined from the API model;

determining that the signature is not found in the classification map; and

determining that the signature comprises the candidate signature.

16. The method of claim 15 comprising adding the candidate signature to the API model without user intervention.

17. The method of claim 12 , comprising in the event that the status code comprises a value that indicates that the API request is valid:

presenting the candidate signature at a user interface; and

receiving a user input to add the candidate signature to the API model.

18. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

receiving, at a server and through an external interface, a transaction that is an application programming interface (API) request sent over a network, where the API request includes an indication of an operation type of an operation to be performed and an indication of a path of the operation;

sending the API request to the backend system through the internal interface;

receiving a response to the API request from the backend system through the internal interface;

determining, by the server and from the transaction, a signature that represents a combination of the operation type of the operation to be performed indicated by the API request and the path of the operation indicated by the API request; and

in response to a determination that a combination of the operation type of the operation to be performed and the path of the operation is not found in a classification map associated with an API model, determining whether a status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid; and

in response to a determination that the status code that is included in the response, received by the server from the backend system, to the API request indicates that the backend system determined that the API request was valid, adding the signature that represents the operation type of the operation and the path of the operation indicated by the API request to the API model;

receiving, at the server and through the external interface, a second transaction that is a second application programming interface (API) request sent over the network;

determining, by the server and from the second transaction, a second signature determined from the second transaction matches the signature added to the API model; and

in response to determining, by the server and from the second transaction, the second signature determined from the second transaction matches the signature added to the API model, applying a run-time policy to the second transaction that is not applied to the transaction that was previously received.

Assignments (3)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: APIGEE CORPORATION
To: GOOGLE INC.
Reel/Frame 040955/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2015
From: GARDINER, A. MARSH; POMORTSEV, YEGOR ALBERTOVICH
To: APIGEE CORPORATION
Reel/Frame 036499/0500 →
Cited By (9)
US 12,299,508 US 12,321,396 US 12,373,414 US 12,406,095 US 12,494,923 US 12,613,864 US 12,639,379 US 12,670,170 US 12,711,032