US2025004926A1PendingUtilityA1

API Validation Framework

Assignee: PROCORE TECH INCPriority: Jun 28, 2023Filed: Jun 28, 2023Published: Jan 2, 2025
Est. expiryJun 28, 2043(~16.9 yrs left)· nominal 20-yr term from priority
G06F 11/3684G06F 9/54
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An example computing system is configured to (i) receive information indicating a set of tests, each test comprising a request to and response from an API that collectively define an API test contract, (ii) based on the set of tests, determine a set of API test contracts, (iii) receive information indicating API production traffic comprising a set of requests to, and responses from, the API, wherein each production request and corresponding production response collectively define an API production contract, (iv) based on the production traffic for the API, determine a set of API production contracts, (v) compare the API test contracts with the API production contracts, (vi) based on the comparison, determine an inconsistency between the sets of API contracts; and (vii) based on the determined inconsistency, cause a change in (a) an extent of the set of tests, or (b) an extent of functionality of the API.

Claims

exact text as granted — not AI-modified
1 . A computing system comprising:
 at least one processor;   a non-transitory computer-readable medium; and   program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:
 receive information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract; 
 based on the set of tests, determine a set of API test contracts; 
 receive information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract; 
 based on the production traffic for the API, determine a set of API production contracts; 
 compare the set of API test contracts with the set of API production contracts; 
 based on the comparison, determine an inconsistency between the set of API test contracts and the set of API production contracts; and 
 based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the API. 
   
     
     
         2 . The computing system of  claim 1 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system is configured to determine that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts. 
     
     
         3 . The computing system of  claim 2 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API. 
     
     
         4 . The computing system of  claim 3 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the supplemental test to be generated and performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate and perform the supplemental test for the API. 
     
     
         5 . The computing system of  claim 4 , further comprising program instructions that are executable by the at least one processor such that the computing system is configured to:
 determine a supplemental API test contract based on the supplemental test;   update the set of API test contracts to include the supplemental API test contract;   compare the given API production contract of the set of API production contracts with the updated set of API test contracts; and   based on the comparison, determine that the given API production contract is reflected in the updated set of API test contracts.   
     
     
         6 . The computing system of  claim 3 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the supplemental test to be generated and performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to report information to a user of the computing system, wherein the reported information instructs the user to generate the supplemental test. 
     
     
         7 . The computing system of  claim 1 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system is configured to determine that a given API test contract of the set of API test contracts is not reflected in the set of API production contracts. 
     
     
         8 . The computing system of  claim 7 , wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the functionality of the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause an endpoint of the API to be deprecated. 
     
     
         9 . The computing system of  claim 1 , wherein the production traffic represents production traffic of the API over a certain period of time, and wherein the set of tests comprises respective tests for various endpoints of the API. 
     
     
         10 . The computing system of  claim 1 , further comprising program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate a surface area of the API at least partially based on the set of tests. 
     
     
         11 . The computing system of  claim 1 , further comprising program instructions that are executable by the at least one processor such that the computing system is configured to:
 receive information indicating specification information for the API; and   automatically generate the set of tests based on the information indicating the specification information for the API.   
     
     
         12 . A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing system to:
 receive information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract;   based on the set of tests, determine a set of API test contracts;   receive information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract;   based on the production traffic for the API, determine a set of API production contracts;   compare the set of API test contracts with the set of API production contracts;   based on the comparison, determine an inconsistency between the set of API test contracts and the set of API production contracts; and   based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the API.   
     
     
         13 . The non-transitory computer-readable medium of  claim 12 , wherein the program instructions that, when executed by at least one processor, cause the computing system to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that, when executed by at least one processor, cause the computing system to determine that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts. 
     
     
         14 . The non-transitory computer-readable medium of  claim 13 , wherein the program instructions that, when executed by at least one processor, cause the computing system to cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that, when executed by at least one processor, cause the computing system to cause a supplemental test to be generated and performed for the API. 
     
     
         15 . The non-transitory computer-readable medium of  claim 14 , wherein the program instructions that, when executed by at least one processor, cause the computing system to cause the supplemental test to be generated and performed for the API comprise program instructions that, when executed by at least one processor, cause the computing system to automatically generate and perform the supplemental test for the API. 
     
     
         16 . The non-transitory computer-readable medium of  claim 15 , wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing system to:
 determine a supplemental API test contract based on the supplemental test;   update the set of API test contracts to include the supplemental API test contract;   compare the given API production contract of the set of API production contracts with the updated set of API test contracts; and   based on the comparison, determine that the given API production contract is reflected in the updated set of API test contracts.   
     
     
         17 . The non-transitory computer-readable medium of  claim 14 , wherein the program instructions that, when executed by at least one processor, cause the computing system to cause the supplemental test to be generated and performed for the API comprise program instructions that, when executed by at least one processor, cause the computing system to report information to a user of the computing system, wherein the reported information instructs the user to generate the supplemental test. 
     
     
         18 . The non-transitory computer-readable medium of  claim 12 , wherein the program instructions that, when executed by at least one processor, cause the computing system to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that, when executed by at least one processor, cause the computing system to determine that a given API test contract of the set of API test contracts is not reflected in the set of API production contracts. 
     
     
         19 . A method carried out by a computing system, the method comprising:
 receiving information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract;   based on the set of tests, determining a set of API test contracts;   receiving information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract;   based on the production traffic for the API, determining a set of API production contracts;   comparing the set of API test contracts with the set of API production contracts;   based on the comparison, determining an inconsistency between the set of API test contracts and the set of API production contracts; and   based on the determined inconsistency, causing a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the APL   
     
     
         20 . The method of  claim 19 , wherein determining the inconsistency between the set of API test contracts and the set of API production contracts comprises determining that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts.

Join the waitlist — get patent alerts

Track US2025004926A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.