IP Library Granted Patent US 10,169,211
Granted Patent B2
US 10,169,211 · App. 15/462,994 · Granted Jan 1, 2019

Application programming interface testing services

Inventor: Ezekiel Kruglick (Poway, CA)
Assignee: Empire Technology Development LLC
G06F11/3676G06F11/3672G06F11/3688G06F11/3692
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,169,211
App. No.
15/462,994
Granted
Jan 1, 2019
Kind
B2
Abstract

Technologies and implementations for providing an application programming interface (API) testing services for transferring data center services. In some examples, multiple API calls used by a service at an origin data center are converted into respective test segments. An API test module including each of the test segments is formed for a multiple number of target data centers and the API test module is transmitted from the origin data center to the target data centers for execution at the target data centers. One or more test results based at least in part on the transmitted API test module being executed at the target data centers are received, and a report based on the one or more test results that indicates which of the application programming interface calls from the origin data center are compatible with the target data centers is generated.

Claims (76)

1. A method to provide an application programming interface (API) testing service, the method comprising:

generating a plurality of test segments based on a plurality of API calls;

creating an API test module that includes the plurality of test segments;

transmitting, via a communication network, the API test module to a plurality of data centers that comprises a first data center and a second data center;

receiving test results from the plurality of data centers, wherein the received test results comprise a first set of test results based on the transmitted API test module that is executed on the first data center, and comprise a second set of test results based on the transmitted API test module that is executed on the second data center, and wherein the first set of test results and the second set of test results are indicative of whether execution of each respective one of the plurality of test segments is successful or returns an error;

comparing the first set of test results and the second set of test results; and

generating a report based on the comparison, wherein the report indicates which of the plurality of API calls are compatible with the plurality of data centers.

2. The method of claim 1 , wherein the plurality of API calls comprises at least one of: a hypertext transfer protocol (HTTP) get request, a HTTP put request, a key-value store command, a messaging call, a queuing call, a remote storage call, a delivery to a content delivery network request, or a management command to a content delivery network.

3. The method of claim 1 , further comprising:

receiving, based on the transmitted API test module that is executed at the plurality of data centers, a test report that includes a test result for each of the plurality of test segments.

4. The method of claim 1 , wherein generating the plurality of test segments comprises generating an API setup call.

5. The method of claim 1 , wherein generating the plurality of test segments comprises generating an API call within an error detection loop that is configured to record whether the generated API call executed correctly or returned an error, and wherein the error detection loop comprises at least one of a header and a footer.

6. The method of claim 1 , wherein the API test module is configured to cycle through each of the plurality of test segments at the plurality of data centers.

7. The method of claim 1 , further comprising:

capturing a first in-operation network message at a network processor of an origin data center;

extracting a first API call from the first in-operation network message; and

including the first API call in the plurality of API calls.

8. The method of claim 1 , further comprising:

capturing a first simple object access protocol message at a network processor of an origin data center;

extracting a first API call from the first simple object access protocol message; and

including the first API call in the plurality of API calls.

9. The method of claim 1 , further comprising:

snooping network messages for API calls at a network processor of an origin data center to detect a first message that includes a first API call and to detect a second message that includes a second API call;

determining whether the first API call and the second API call are similar;

including the first API call in the plurality of API calls based on a determination that the first API call and the second API call are similar; and

including the first API call and the second API call in the plurality of API calls based on a determination that the first API call and the second API call are dissimilar.

10. The method of claim 1 , further comprising:

evaluating a code repository to detect a code-level API call; and

including the code-level API call in the plurality of API calls.

11. A non-transitory computer-readable medium that includes computer executable instructions that, in response to execution by a processor, cause a device to perform or control performance of operations to provide an application programming interface (API) testing service, wherein the operations comprise:

generate a plurality of test segments based on a plurality of API calls;

create an API test module that includes the plurality of test segments;

send, via a communication network, the API test module to a plurality of data centers that comprises a first data center and a second data center;

obtain test results from the plurality of data centers, wherein the obtained test results comprise a first set of test results based on the sent API test module that is executed on the first data center, and comprise a second set of test results based on the sent API test module that is executed on the second data center, and wherein the first set of test results and the second set of test results are indicative of whether execution of each respective one of the plurality of test segments is successful or returns an error;

compare the first set of test results and the second set of test results; and

generate a report based on the comparison, wherein the report indicates which of the plurality of API calls are compatible with the plurality of data centers.

12. The non-transitory computer-readable medium of claim 11 , wherein the operations to generate the plurality of test segments comprise at least one operation to generate an API setup call.

13. The non-transitory computer-readable medium of claim 11 , wherein the operations to generate the plurality of test segments comprise operations to generate an API call within an error detection loop that is configured to record whether the generated API call executed correctly or returned an error, and wherein the error detection loop comprises at least one of a header and a footer.

14. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

snoop network messages for API calls at a network processor of an origin data center to detect a first message that includes a first API call and to detect a second message that includes a second API call;

determine whether the first API call and the second API call are similar;

include the first API call in the plurality of API calls based on a determination that the first API call and the second API call are similar; and

include the first API call and the second API call in the plurality of API calls based on a determination that the first API call and the second API call are dissimilar.

15. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

capture a first in-operation network message at a network processor of an origin data center;

extract a first API call from the first in-operation network message; and

include the first API call in the plurality of API calls.

16. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

capture a first simple object access protocol message at a network processor of an origin data center;

extract a first API call from the first simple object access protocol message; and

include the first API call in the plurality of API calls.

17. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

evaluate a code repository to detect a code-level API call; and

include the code-level API call in the plurality of API calls.

18. An application programming interface (API) testing device, comprising:

a processor; and

a machine readable medium coupled to the processor and having instructions stored thereon that, in response to execution by the processor, cause the API testing device to perform operations to provide an API testing service, wherein the operations comprise:

generate a plurality of test segments based on a plurality of API calls;

create an API test module that includes the plurality of test segments;

send, via a communication network, the API test module to a plurality of data centers that comprises a first data center and a second data center;

obtain test results from the plurality of data centers, wherein the obtained test results comprise a first set of test results based on the sent API test module that is executed on the first data center, and comprise a second set of test results based on the sent API test module that is executed on the second data center, and wherein the first set of test results and the second set of test results are indicative of whether execution of each respective one of the plurality of test segments is successful or returns an error;

compare the first set of test results and the second set of test results; and

generate a report based on the comparison, wherein the report indicates which of the plurality of API calls are compatible with the plurality of data centers.

19. The API testing device of claim 18 , wherein the operations further comprise:

snoop network messages for API calls at a network processor of an origin data center to detect a first message that includes a first API call and to detect a second message that includes a second API call;

determine whether the first API call and the second API call are similar;

include the first API call in the plurality of API calls based on a determination that the first API call and the second API call are similar; and

include the first API call and the second API call in the plurality of API calls based on a determination that the first API call and the second API call are dissimilar.

20. The API testing device of claim 18 , wherein the operations further comprise:

capture a first in-operation network message at a network processor of an origin data center;

extract a first API call from the first in-operation network message; and

include the first API call in the plurality of API calls.

21. The API testing device of claim 18 , wherein the operations further comprise:

capture a first simple object access protocol message at a network processor of an origin data center;

extract a first API call from the first simple object access protocol message; and

include the first API call in the plurality of API calls.

Assignments (2)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
Continuity (2)
Continuation 13700417
Related Publication 20170192881A1 · Jul 6, 2017