Abstract: ABSTRACT METHOD AND SYSTEM FOR TEMPLATE-BASED APPLICATION PROGRAMMING INTERFACE (API) PROVISIONING The present disclosure relates to a system (108) and a method (600) for template-based Application Programming Interface (API) provisioning. The system (108) includes a transceiver (210) to receive an API request from a user through a request handler for availing one or more services. The system (108) further includes an extraction module (212) to extract data pertaining to a plurality of parameters from the API request received. The system (108) further includes a selection module (214) to select a corresponding template from a database (208) based on data extracted pertaining to the plurality of parameters from the API request. The system (108) further includes a customization module (216) to dynamically customize at least one pre-defined template parameter of the template. The system (108) further includes the transmitting module (220) to transmit an API response to the user in a user preferred format. Ref. Fig. 2
DESC:
FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
1. TITLE OF THE INVENTION
SYSTEM AND METHOD FOR TEMPLATE-BASED APPLICATION PROGRAMMING INTERFACE (API) PROVISIONING
2. APPLICANT(S)
NAME NATIONALITY ADDRESS
JIO PLATFORMS LIMITED INDIAN OFFICE-101, SAFFRON, NR. CENTRE POINT, PANCHWATI 5 RASTA, AMBAWADI, AHMEDABAD 380006, GUJARAT, INDIA
3.PREAMBLE TO THE DESCRIPTION
THE FOLLOWING SPECIFICATION PARTICULARLY DESCRIBES THE NATURE OF THIS INVENTION AND THE MANNER IN WHICH IT IS TO BE PERFORMED.
FIELD OF THE INVENTION
[0001] The present invention relates to Application Programming Interfaces (APIs), more particularly relates to a system and method for template-based Application Programming Interface (API) provisioning.
BACKGROUND OF THE INVENTION
[0002] Numerous application programming interfaces (“APIs”) are being developed to exchange data and instructions among disparate systems, applications, and computing devices. As systems and applications computing devices uses different platforms proliferate, various third-party APIs having different configurations are used for communication. Whenever a client uses, a new API is used to communicate with a system, there is need to expose the system to the new API by making changes in the system. Further, as every API has its own structure and format and API specific configurations or parameters, the system needs to be reconfigured by undergoing changes in the code, to communicate with every new API.
[0003] Changes in code usually consume time and resources, thereby making the entire process of integrating a new API into the system inefficient. There is a need for a method and system that can integrate a new API without having to make any changes to the code. The integration should be dynamic and at run time, so that the communication between the API and the system is seamless. A common code or logic in the form of a template can be used to integrate any API without having to make changes to the code. Hence, a system and method for template-based API provisioning is proposed.
SUMMARY OF THE INVENTION
[0004] One or more embodiments of the present disclosure provide a system and a method for template-based Application Programming Interface (API) provisioning.
[0005] In one aspect of the present invention, the system for template-based API provisioning is disclosed. The system includes a transceiver configured to receive an API request from a user through a request handler for availing one or more services. The system further includes an extraction module configured to extract data pertaining to a plurality of parameters from the API request received. The system further includes a selection module configured to select a corresponding template from a database based on data extracted pertaining to the plurality of parameters from the API request. The system further includes a customization module configured to dynamically customize at least one pre-defined template parameter of the template. The system further includes the transmitting module configured to transmit an API response to the user in a user preferred format.
[0006] In an embodiment, the plurality of parameters extracted from the API request includes at least one of a context, a header, a query and a body.
[0007] In an embodiment, the customization module, determines that customization is required for the at least one pre-defined template parameter of the template by matching with configurations of each of the plurality of pre-defined parameters extracted from the API request.
[0008] In an embodiment, the plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
[0009] In an embodiment, the customization module customizes at least one pre-defined template parameter of the corresponding template. The customization module further configured to check from the database whether data ingestion and fetching is required in order to customize the template and if data ingestion and fetching is required, performing the data ingestion and fetching into/from the database.
[0010] In an embodiment, the API response is transmitted to the user as at least one of, a notification and a CALLBACK function. In an embodiment, the API response is a response in relation to the API request received from the user.
[0011] In an embodiment, the API response is transmitted to the user in a user preferred format including at least one of, Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner. In an embodiment, the API template is customized at an API gateway at runtime.
[0012] In an embodiment, wherein the system further comprises a retrieving module configured to, retrieve, the one or more services from a third-party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository.
[0013] In an embodiment, the customization module dynamically customizes at least one pre-defined template parameter of the template subsequent to determining that the customization is required for the at least one pre-defined template parameter.
[0014] In an embodiment, the customization module determines customization is required for the at least one pre-defined template parameter by checking whether the customization is required for the at least one pre-defined template parameter in accordance with at least one of the plurality of parameters extracted from the API request.
[0015] In another aspect of the present invention, the method template-based API provisioning is disclosed. The method includes the step of receiving an API request from a user through a request handler for availing one or more services. The method further includes the step of extracting data pertaining to a plurality of parameters from the API request received. The method further includes the step of selecting a corresponding template from a database based on data extracted pertaining to the plurality of parameters from the API request. The method further includes the step of dynamically customizing at least one pre-defined template parameter of the template. The method further includes the step of transmitting an API response to the user in a user preferred format.
[0016] In another aspect of the invention, a non-transitory computer-readable medium having stored thereon computer-readable instructions is disclosed. The computer-readable instructions are executed by a processor. The processor is configured to receive an API request from a user through a request handler for availing one or more services. The processor is further configured to extract data pertaining to a plurality of parameters from the API request received. The processor is further configured to select a corresponding template from a database based on data extracted pertaining to the plurality of parameters from the API request. The processor is further configured to dynamically customize at least one pre-defined template parameter of the template. The processor is further configured to transmit an API response to the user in a user preferred format.
[0017] In another aspect of invention, User Equipment (UE) is disclosed. The UE includes one or more primary processors communicatively coupled to one or more processors, the one or more primary processors coupled with a memory. The processor is configured to transmit an API request by a user to the one or more processors in order to avail one or more services hosted by an API services repository.
[0018] Other features and aspects of this invention will be apparent from the following description and the accompanying drawings. The features and advantages described in this summary and in the following detailed description are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the relevant art, in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes disclosure of electrical components, electronic components or circuitry commonly used to implement such components.
[0020] FIG. 1 is an exemplary block diagram of an environment for template-based Application Programming Interface (API) provisioning, according to one or more embodiments of the present invention;
[0021] FIG. 2 is an exemplary block diagram of a system for template-based API provisioning, according to one or more embodiments of the present invention;
[0022] FIG. 3 is a schematic representation of a workflow of the system of FIG. 1, according to the one or more embodiments of the present invention;
[0023] FIG. 4 is an exemplary block diagram of an architecture of the system of the FIG. 2, according to one or more embodiments of the present invention;
[0024] FIG. 5 is a signal flow diagram for template-based API provisioning, according to one or more embodiments of the present invention; and
[0025] FIG. 6 is a schematic representation of a method for template-based API provisioning, according to one or more embodiments of the present invention.
[0026] The foregoing shall be more apparent from the following detailed description of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0027] Some embodiments of the present disclosure, illustrating all its features, will now be discussed in detail. It must also be noted that as used herein and in the appended claims, the singular forms "a", "an" and "the" include plural references unless the context clearly dictates otherwise.
[0028] Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. However, one of ordinary skill in the art will readily recognize that the present disclosure including the definitions listed here below are not intended to be limited to the embodiments illustrated but is to be accorded the widest scope consistent with the principles and features described herein.
[0029] A person of ordinary skill in the art will readily ascertain that the illustrated steps detailed in the figures and here below are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
[0030] A system and method disclose a template-based Application Programming Interface (API) provisioning. A template is created using some parameters which are consumed in a common logic or code. The template is used to integrate any new API to a system thereby eliminating the need to make any code changes within the system. As a result, the integration of the new API is done at run time in a dynamic way.
[0031] FIG. 1 illustrates an exemplary block diagram of an environment 100 template-based Application Programming Interface (API) provisioning, according to one or more embodiments of the present disclosure. In this regard, the environment 100 includes a User Equipment (UE) 102, a server 104, a network 106 and a system 108 communicably coupled to each other for uniform distribution of one or more data packets. The UE 102 aids a user to interact with the system 108 for transmitting an API request.
[0032] As per the illustrated embodiment and for the purpose of description and illustration, the UE 102 includes, but not limited to, a first UE 102a, a second UE 102b, and a third UE 102c, and should nowhere be construed as limiting the scope of the present disclosure. In alternate embodiments, the UE 102 may include a plurality of UEs as per the requirement. For ease of reference, each of the first UE 102a, the second UE 102b, and the third UE 102c, will hereinafter be collectively and individually referred to as the “User Equipment (UE) 102”.
[0033] In an embodiment, the UE 102 is one of, but not limited to, any electrical, electronic, electro-mechanical or an equipment and a combination of one or more of the above devices such as virtual reality (VR) devices, augmented reality (AR) devices, laptop, a general-purpose computer, desktop, personal digital assistant, tablet computer, mainframe computer, or any other computing device.
[0034] The environment 100 includes the server 104 accessible via the network 106. The server 104 may include, by way of example but not limitation, one or more of a standalone server, a server blade, a server rack, a bank of servers, a server farm, hardware supporting a part of a cloud service or system, a home server, hardware running a virtualized server, one or more processors executing code to function as a server, one or more machines performing server-side functionality as described herein, at least a portion of any of the above, some combination thereof. In an embodiment, the entity may include, but is not limited to, a vendor, a network operator, a company, an organization, a university, a lab facility, a business enterprise side, a defense facility side, or any other facility that provides service.
[0035] The network 106 includes, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a Public-Switched Telephone Network (PSTN), a cable network, a cellular network, a satellite network, a fiber optic network, or some combination thereof. The network 106 may include, but is not limited to, a Third Generation (3G), a Fourth Generation (4G), a Fifth Generation (5G), a Sixth Generation (6G), a New Radio (NR), a Narrow Band Internet of Things (NB-IoT), an Open Radio Access Network (O-RAN), and the like.
[0036] The network 106 may also include, by way of example but not limitation, at least a portion of one or more networks having one or more nodes that transmit, receive, forward, generate, buffer, store, route, switch, process, or a combination thereof, etc. one or more messages, packets, signals, waves, voltage or current levels, some combination thereof, or so forth. The network 106 may also include, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a Public-Switched Telephone Network (PSTN), a cable network, a cellular network, a satellite network, a fiber optic network, a VOIP or some combination thereof.
[0037] The environment 100 further includes the system 108 communicably coupled to the server 104 and the UE 102 via the network 106. The system 108 is configured for template-based API provisioning. As per one or more embodiments, the system 108 is adapted to be embedded within the server 104 or embedded as an individual entity.
[0038] Operational and construction features of the system 108 will be explained in detail with respect to the following figures.
[0039] FIG. 2 is an exemplary block diagram of the system 108 for template-based API provisioning, according to one or more embodiments of the present invention.
[0040] As per the illustrated embodiment, the system 108 includes one or more processors 202, a memory 204, a user interface 206, and a database 208. For the purpose of description and explanation, the description will be explained with respect to one processor 202 and should nowhere be construed as limiting the scope of the present disclosure. In alternate embodiments, the system 108 may include more than one processors 202 as per the requirement of the network 106 (as shown in Fig 1). The one or more processors 202, hereinafter referred to as the processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, single board computers, and/or any devices that manipulate signals based on operational instructions.
[0041] As per the illustrated embodiment, the processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 204. The memory 204 may be configured to store one or more computer-readable instructions or routines in a non-transitory computer-readable storage medium, which may be fetched and executed to create or share data packets over a network service. The memory 204 may include any non-transitory storage device including, for example, volatile memory such as RAM, or non-volatile memory such as disk memory, EPROMs, FLASH memory, unalterable memory, and the like.
[0042] In an embodiment, the user interface 206 includes a variety of interfaces, for example, interfaces for a graphical user interface, a web user interface, a Command Line Interface (CLI), and the like. The user interface 206 facilitates communication of the system 108. In one embodiment, the user interface 206 provides a communication pathway for one or more components of the system 108. Examples of such components include, but are not limited to, the UE 102 (as shown in Fig. 1) and the database 208.
[0043] The database 208 is one of, but not limited to, a centralized database, a cloud-based database, a commercial database, an open-source database, a distributed database, an end-user database, a graphical database, a No-Structured Query Language (NoSQL) database, an object-oriented database, a personal database, an in-memory database, a document-based database, a time series database, a wide column database, a key value database, a search database, a cache databases, and so forth. The foregoing examples of database 208 types are non-limiting and may not be mutually exclusive e.g., a database can be both commercial and cloud-based, or both relational and open-source, etc.
[0044] In order for the system 108 for template-based API provisioning, the processor 202 includes one or more modules. In one embodiment, the one or more modules includes, but not limited to, a transceiver 210, an extraction module 212, a selection module 214, a customization module 216, a retrieving module 218 and a transmitting module 220 communicably coupled to each other for template-based API provisioning.
[0045] The transceiver 210, the extraction module 212, the selection module 214, the customization module 216, the retrieving module 218 and the transmitting module 220 in an embodiment, may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processor 202. In the examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processor 202 may be processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processor may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the memory 204 may store instructions that, when executed by the processing resource, implement the processor. In such examples, the system 108 may comprise the memory 204 storing the instructions and the processing resource to execute the instructions, or the memory 204 may be separate but accessible to the system 108 and the processing resource. In other examples, the processor 202 may be implemented by electronic circuitry.
[0046] In one embodiment, the transceiver 210 of the system 108 is configured to receive an API request from a user through a request handler for availing one or more services. The API is a set of rules or protocols that enables software applications to communicate with each other to exchange data, features and functionality. The API request is a message sent to the server 104 (as shown in Fig 1) requesting the API to provide a service or information. The API request typically involves sending a specific type of HTTP request (such as GET, POST, PUT, DELETE) to the server 104, which then processes the request and returns a response, often in the form of data. The request handler is a component in a web server or an application that processes incoming API requests. The one or more services includes, but not limited to data retrieval services, data manipulation services, authentication and authorization services, transaction services, notification services, integration services, reporting services, monitoring and logging services, configuration and management services.
[0047] Upon receiving the API request from the user, data pertaining to a plurality of parameters from the API request received is extracted by the extraction module 212. The plurality of parameters extracted from the API request includes at least one of a contexts, a header, a query and a body. The contexts parameters provide contextual information about the request, such as the environment in which the request is made or any specific conditions that affect how the API should process the request. The header parameters are included in the header section of the API request. The header parameters typically provide metadata or additional information about the request, such as authentication tokens, content types, or language preferences. The query parameters are part of the URL query string and provide additional details or criteria for the request. The query parameters are often used for filtering, sorting, or pagination purposes. The body parameters are included in the body of the API request, typically in formats like JSON or XML. The body parameters convey more complex data structures or payloads required for operations such as creating, updating, or deleting resources.
[0048] Upon extracting the data pertaining to the plurality of parameters, a corresponding template from the database 208 is selected by the selection module 214. The corresponding template from the database 208 is selected based on the data extracted pertaining to the plurality of parameters from the API request. The template is a predefined framework or schema stored in the database 208 that specifies how an API should handle and respond to requests. The API template is customized at an API gateway at runtime.
[0049] Once the corresponding template is selected from the database 208, at least one pre-defined template parameter of the template is dynamically customized by the customization module 216. More specifically, the customization module 216 determines whether customization is required for the at least one pre-defined template parameter of the template by matching with configuration of each of the plurality of pre-defined parameters extracted from the API request. The plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
[0050] The customization is performed, if required for the at least one pre-defined template parameter of the template by matching with configuration of each of the plurality of pre-defined parameters extracted from the API request. Further, if customization is not required or upon customizing the at least one pre-defined template parameter of the template of the corresponding template, the customization module 216 further checks from the database whether a data ingestion and fetching is required in order to customize the template. The data ingestion refers to the process of importing, transferring, loading, and processing data from various sources into the database 208. The fetching refers to the process of retrieving or querying data from the database 208. If the data ingestion and fetching is required, the data ingestion and fetching is performed and stored in the database 208 for future use.
[0051] In an embodiment, the retrieving module 218 is configured to retrieve the one or more services from a third party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository. The third party API is an application programming interface provided by an external service or platform that allows developers to access and interact with its functionality or data. The API service repository is a centralized resource that hosts a collection of APIs. The API service repository serves as a catalog or directory where developers can discover, access, and manage APIs for various services.
[0052] Thereafter, the transmitting module 220 is configured to transmit an API response to the user in a user preferred format. The API response is a response in relation to the API request received from the user. The API response is transmitted to the user in a user preferred format including at least one of, Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner. The API response is transmitted to the user as at least one of, a notification and a CALLBACK function. The CALLBACK function is an asynchronous API request that originates from the API server and is sent to the client in response to an earlier request sent by that client. For example, if the configuration details include that the API response is required as a CALLBACK, then the API response is provided as a callback. Alternatively, if the API response is not required to be sent as Callback, then the API response is sent in a call API response as a notification. By doing so, the system 108 improves agility, flexibility and cost efficiency of API development and management process as APIs get integrated dynamically.
[0053] FIG. 3 describes a preferred embodiment of the system 108 of FIG. 2, according to various embodiments of the present invention. It is to be noted that the embodiment with respect to FIG. 3 will be explained with respect to the first UE 102a and the system 108 for the purpose of description and illustration and should nowhere be construed as limited to the scope of the present disclosure.
[0054] As mentioned earlier in FIG. 1, each of the first UE 102a the second UE 102b, and the third UE 102c may include an external storage device, a bus, a main memory, a read-only memory, a mass storage device, communication port(s), and a processor. The exemplary embodiment as illustrated in FIG. 3 will be explained with respect to the first UE 102a without deviating from the scope of the present disclosure and limiting the scope of the present disclosure. The first UE 102a includes one or more primary processors 302 communicably coupled to the one or more processors 202 of the system 108.
[0055] The one or more primary processors 302 are coupled with a memory 304 storing instructions which are executed by the one or more primary processors 302. Execution of the stored instructions by the one or more primary processors 302 enables the first UE 102a to transmit the API request by the user to the one or more processors 202 in order to avail one or more services hosted by the API services repository.
[0056] As mentioned earlier in FIG. 2, the one or more processors 202 of the system 108 is configured for uniform distribution of one or more data packets. As per the illustrated embodiment, the system 108 includes the one or more processors 202, the memory 204, the user interface 206, and the database 208. The operations and functions of the one or more processors 202, the memory 204, the user interface 206, and the database 208 are already explained in FIG. 2. For the sake of brevity, a similar description related to the working and operation of the system 108 as illustrated in FIG. 2 has been omitted to avoid repetition.
[0057] Further, the processor 202 includes the transceiver 210, the extraction module 212, the selection module 214, the customization module 216, the retrieving module 218 and the transmitting module 220. The operations and functions of the transceiver 210, the extraction module 212, the selection module 214, the customization module 216, the retrieving module 218 and the transmitting module 220 are already explained in FIG. 2. Hence, for the sake of brevity, a similar description related to the working and operation of the system 108 as illustrated in FIG. 2 has been omitted to avoid repetition. The limited description provided for the system 108 in FIG. 3, should be read with the description as provided for the system 108 in the FIG. 2 above, and should not be construed as limiting the scope of the present disclosure.
[0058] FIG. 4 is an exemplary block diagram of an architecture 400 of the system 108 for template-based API provisioning, according to one or more embodiments of the present invention.
[0059] The architecture 400 includes an API consumer 402 and the system 108. Further, the system 108 includes an Elastic Load Balancer (ELB) 404a and 404b, an Identity and Access Management (IAM) 406, an API gateway 420, an API service repository 424 and the database 208.
[0060] The API service repository 424 includes a plurality of service APIs 422 that are already existing in the system 108. The database 208 includes one or more databases to store data and configuration parameters for the system 108.
[0061] The API gateway 420 includes a data transformation module 408, an API template configuration file 410, a data manipulation module 412, an API integration module 414, a protocol translation unit 416, and a data integration module 418.
[0062] The API gateway 420 communicates with the API consumer 402 via one or more ELB 404a, 404b and the (IAM) 406. The ELB 404a, 404b automatically distributes incoming application traffic across multiple targets and virtual appliances in one or more availability zones. The IAM 406 is used for authentication and authorization of the third-party consumers.
[0063] In operation when a customer or client sends the request, a template file is read, and the request handler is created on the server 104 to receive the request on the API Gateway 420. Further, when the desired request is received, a plurality of request related information is collected from the request. Examples of request related information or parameters include, but are not limited to, context, header, query parameters, request body. The request related parameters are matched with exact context in order to get a unique template that is configured to handle the request. As per the unique template, all the steps configured in the unique template like DATA fetch from DB, DATA Save in DB, request Body transformation and manipulation if required, Header and query param transformation and manipulation if required, custom header and query param if any or same to get from request body, third party API Call(single/multiple) with URL Encoding and HTTPS security are processed to provide a response. The response is generated as per the template parameters.
[0064] In an embodiment, pre-defined parameters of the template that can be configured are, Request Protocol, URL, Request Type (GET, POST etc..), Header, Query Param, Communication Type (Rest, Kafka), database related information if any (Single, Multiple DB interaction), Request and Response transformation and manipulation related information, internal third party API call related information (for example, single or multiple API call), Source Callback related data, URL Encoding and HTTPS Security related information, header and query param transformation and manipulation related data, custom header and query param related data from request body, in case of multiple API call sync and async related information. Information related to the aforementioned parameters can be added at run time.
[0065] In an embodiment, data from the database 208 and/ or the third-party API call may be included within the response. Finally, as per customer requirement, the response is transformed into a manner in which the response needs to be communicated to the customer. For example, the response may have to be communicated in either a sync or async manner. In another embodiment, the response can be URL encoded or secured via HTTPS.
[0066] FIG. 5 is a signal flow diagram for uniform distribution of one or more data packets, according to one or more embodiments of the present invention. For the purpose of description, the signal flow diagram is described with the embodiments as illustrated in FIG. 2 and should nowhere be construed as limiting the scope of the present disclosure.
[0067] At step 502, the transceiver 210 is configured to receive the API request from the user through the request handler for availing one or more services.
[0068] At step 504, upon receiving the API request, the extraction module 212 is configured to extract data pertaining to the plurality of parameters from the received API request. The plurality of parameters extracted from the API request includes at least one of a contexts, a header, a query and a body.
[0069] At step 506, upon extracting the data pertaining to the plurality of parameters, the corresponding template from the database 208 is selected by the selection module 214. The corresponding template is selected based on data extracted pertaining to the plurality of parameters from the API request.
[0070] At step 508, upon selecting the corresponding template, the customization module 216 is configured to dynamically customize the at lest one pre-defined template parameter of the template. The API template is customized at an API gateway at runtime. More specifically the customization module determines that customization is required for the at least one pre-defined template parameter of the template by matching with configuration of each of the plurality of pre-defined parameters extracted from the API request. The plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
[0071] The customization module 216 customizes at least one pre-defined template parameter of the corresponding template and further configured to check from the database whether data ingestion and fetching is required in order to customize the template. If data ingestion and fetching is required, performing the data ingestion and fetching into/from the database 208. Further, the retrieving module 218 is configured to retrieve, the one or more services from a third-party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository.
[0072] At step 510, upon customizing the template, the API response is transmitted by the transmitting module 220 to the user in the user preferred format. The API response is a response in relation to the API request received from the user. The API response is transmitted to the user in a user preferred format including at least one of Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner. the API response is transmitted to the user as at least one of, a notification and a CALLBACK function.
[0073] FIG. 6 is a flow diagram of a method 600 for template-based API provisioning, according to one or more embodiments of the present invention. For the purpose of description, the method 600 is described with the embodiments as illustrated in FIG. 2 and should nowhere be construed as limiting the scope of the present disclosure.
[0074] At step 602, the method 600 includes the step of receiving the API request from the user through the request handler for availing one or more services by the transceiver 210.
[0075] At step 604, the method 600 includes the step of extracting data pertaining to the plurality of parameters from the received API request by the extraction module 212. The plurality of parameters extracted from the API request includes at least one of a contexts, a header, a query and a body.
[0076] At step 606, the method 600 includes the step of selecting the corresponding template from the database 208 based on data extracted pertaining to the plurality of parameters from the API request by the selection module 214.
[0077] At step 608, the method 600 includes the step of dynamically customizing the at least one pre-defined template parameter of the template by the customization module 216. The API template is customized at an API gateway at runtime. More specifically the customization module determines that customization is required for the at least one pre-defined template parameter of the template by matching with configuration of each of the plurality of pre-defined parameters extracted from the API request. The plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
[0078] The customization module 216 customizes at least one pre-defined template parameter of the corresponding template and further configured to check from the database whether data ingestion and fetching is required in order to customize the template. If data ingestion and fetching is required, performing the data ingestion and fetching into/from the database 208. Further, the retrieving module 218 is configured to retrieve, the one or more services from a third-party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository.
[0079] At step 610, the method 600 includes the step of transmitting the API response to the user in the user preferred format. The API response is a response in relation to the API request received from the user. The API response is transmitted to the user in a user preferred format including at least one of Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner. the API response is transmitted to the user as at least one of, a notification and a CALLBACK function.
[0080] The present invention further discloses a non-transitory computer-readable medium having stored thereon computer-readable instructions. The computer-readable instructions are executed by the processor 202. The processor 202 is configured to receive the API request from the user through the request handler for availing one or more services. The processor 202 is further configured to extract data pertaining to the plurality of parameters from the API request received. The processor 202 is further configured to select a corresponding template from a database based on data extracted pertaining to the plurality of parameters from the API request. The processor 202 is further configured to dynamically customize at least one pre-defined template parameter of the template. The processor 202 is further configured to transmit, an API response to the user in a user preferred format.
[0081] A person of ordinary skill in the art will readily ascertain that the illustrated embodiments and steps in description and drawings (FIG.1-6) are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
[0082] The present disclosure incorporates technical advancement of improving agility, flexibility and cost- efficiency of API development and management process as APIs get integrated dynamically. Further, new APIs can be configured and created on demand. Furthermore, new APIs can be serviced dynamically at run time using a common template.
[0083] The present invention offers multiple advantages over the prior art and the above listed are a few examples to emphasize on some of the advantageous features. The listed advantages are to be read in a non-limiting manner.
REFERENCE NUMERALS
[0084] Environment- 100
[0085] User Equipment (UE)- 102
[0086] Server- 104
[0087] Network- 106
[0088] System -108
[0089] Processor- 202
[0090] Memory- 204
[0091] User Interface- 206
[0092] Database- 208
[0093] Transceiver- 210
[0094] Extraction Module- 212
[0095] Selection Module- 214
[0096] Customization Module- 216
[0097] Retrieving Module- 218
[0098] Transmitting Module- 220
[0099] Primary processor- 302
[00100] Memory- 304
[00101] API Consumer- 402
[00102] Elastic Load Balancer (ELB)- 404a,404b
[00103] Identity and Access Management (IAM)- 406
[00104] Data Transformation – 408
[00105] API template Configuration – 410
[00106] Data Manipulation- 412
[00107] API integration -414
[00108] Protocol Translation -416
[00109] Data Ingestion – 418
[00110] API Gateway- 420
[00111] Service APIs- 422
[00112] API service repository - 424
,CLAIMS:CLAIMS:
We Claim:
1. A method (600) for template-based Application Programming interface (API) provisioning, the method (600) comprises the steps of:
receiving, by one or more processors (202), an API request from a user through a request handler for availing one or more services;
extracting, by the one or more processors (202), data pertaining to a plurality of parameters from the API request received;
selecting, by the one or more processors (202), a corresponding template from a database (208) based on data extracted pertaining to the plurality of parameters from the API request;
dynamically customizing, by the one or more processors (202), at least one pre-defined template parameter of the template; and
transmitting, by the one or more processors (202), an API response to the user in a user preferred format.
2. The method (600) as claimed in claim 1, wherein the plurality of parameters extracted from the API request includes at least one of a contexts, a header, a query and a body.
3. The method (600) as claimed in claim 1, wherein the one or more processors (202), determines that customization is required for the at least one pre-defined template parameter of the template by matching with configurations of each of the plurality of pre-defined parameters extracted from the API request.
4. The method (600) as claimed in claim 1, wherein the plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
5. The method (600) as claimed in claim 1, wherein the step of customizing at least one pre-defined template parameter of the corresponding template further include the steps of:
checking, by the one or more processors (202), from the database whether data ingestion and fetching is required in order to customize the template; and
if the data ingestion and fetching is required , performing, by the one or more processors (202), the data ingestion and fetching into/from the database (208).
6. The method (600) as claimed in claim 1, wherein the API response is transmitted to the user as at least one of, a notification and a CALLBACK function.
7. The method (600) as claimed in claim 1, wherein the API response is a response in relation to the API request received from the user.
8. The method (600) as claimed in claim 1, wherein the API response is transmitted to the user in a user preferred format including at least one of, Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner.
9. The method (600) as claimed in claim 1, wherein the API template is customized at an API gateway at runtime.
10. The method (600) as claimed in claim 1, wherein the method further comprises the step of:
retrieving, by the one or more processors (202), the one or more services from a third-party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository.
11. A system (108) for template-based Application Programming interface (API) provisioning, the system (108) comprising:
a transceiver (210) configured to, receive, an API request from a user through a request handler for availing one or more services;
an extraction module (212) configured to, extract, data pertaining to a plurality of parameters from the API request received;
a selection module (214) configured to, select, a corresponding template from a database (208) based on data extracted pertaining to the plurality of parameters from the API request;
a customization module (216) configured to, dynamically customize, at least one pre-defined template parameter of the template; and
the transmitting module (220) configured to, transmit, an API response to the user in a user preferred format.
12. The system (108) as claimed in claim 11, wherein the plurality of parameters extracted from the API request includes at least one of a contexts, a header, a query and a body.
13. The system (108) as claimed in claim 11, wherein the customization module (216), determines that customization is required for the at least one pre-defined template parameter of the template by matching with configurations of each of the plurality of pre-defined parameters extracted from the API request.
14. The system (108) as claimed in claim 11, wherein the plurality of pre-defined template parameters which are customizable include at least one of, Request Protocol, URL, Request Type (GET, POST), Query, Communication Type (Rest, Kafka).
15. The system (108) as claimed in claim 11, wherein the customization module (216) customizes at least one pre-defined template parameter of the corresponding template by:
checking, from the database whether data ingestion and fetching is required in order to customize the template; and
if data ingestion and fetching is required, performing the data ingestion and fetching into/from the database (208).
16. The system (108) as claimed in claim 11, wherein the API response is transmitted to the user as at least one of, a notification and a CALLBACK function.
17. The system (108) as claimed in claim 11, wherein the API response is a response in relation to the API request received from the user.
18. The system (108) as claimed in claim 11, wherein the API response is transmitted to the user in a user preferred format including at least one of, Uniform Resource Locator (URL) encoded, secured via Hypertext Transfer Protocol Secure (HTTPS), sync or async manner.
19. The system (108) as claimed in claim 11, wherein the API template is customized at an API gateway at runtime.
20. The system (108) as claimed in claim 11, wherein the system (108) further comprises:
a retrieving module (218) configured to, retrieve, the one or more services from a third-party API service repository based on the API request received from the user when the one or more services is not available at a current API service repository.
21. A User Equipment (UE) (102), comprising:
one or more primary processors (302) communicatively coupled to one or more processors (202), the one or more primary processors (302) coupled with a memory (304), wherein said memory (304) stores instructions which when executed by the one or more primary processors causes the UE (102) to:
transmit, an API request by a user to the one or more processors (202) in order to avail one or more services hosted by an API services repository; and
wherein the one or more processors (202) is configured to perform the steps as claimed in claim 1.
| # | Name | Date |
|---|---|---|
| 1 | 202321047710-STATEMENT OF UNDERTAKING (FORM 3) [14-07-2023(online)].pdf | 2023-07-14 |
| 2 | 202321047710-PROVISIONAL SPECIFICATION [14-07-2023(online)].pdf | 2023-07-14 |
| 3 | 202321047710-FORM 1 [14-07-2023(online)].pdf | 2023-07-14 |
| 4 | 202321047710-FIGURE OF ABSTRACT [14-07-2023(online)].pdf | 2023-07-14 |
| 5 | 202321047710-DRAWINGS [14-07-2023(online)].pdf | 2023-07-14 |
| 6 | 202321047710-DECLARATION OF INVENTORSHIP (FORM 5) [14-07-2023(online)].pdf | 2023-07-14 |
| 7 | 202321047710-FORM-26 [03-10-2023(online)].pdf | 2023-10-03 |
| 8 | 202321047710-Proof of Right [04-01-2024(online)].pdf | 2024-01-04 |
| 9 | 202321047710-DRAWING [03-07-2024(online)].pdf | 2024-07-03 |
| 10 | 202321047710-COMPLETE SPECIFICATION [03-07-2024(online)].pdf | 2024-07-03 |
| 11 | Abstract-1.jpg | 2024-08-06 |
| 12 | 202321047710-FORM-9 [15-10-2024(online)].pdf | 2024-10-15 |
| 13 | 202321047710-FORM 18A [16-10-2024(online)].pdf | 2024-10-16 |
| 14 | 202321047710-Power of Attorney [11-11-2024(online)].pdf | 2024-11-11 |
| 15 | 202321047710-Form 1 (Submitted on date of filing) [11-11-2024(online)].pdf | 2024-11-11 |
| 16 | 202321047710-Covering Letter [11-11-2024(online)].pdf | 2024-11-11 |
| 17 | 202321047710-CERTIFIED COPIES TRANSMISSION TO IB [11-11-2024(online)].pdf | 2024-11-11 |
| 18 | 202321047710-FORM 3 [28-11-2024(online)].pdf | 2024-11-28 |
| 19 | 202321047710-FER.pdf | 2025-01-03 |
| 20 | 202321047710-OTHERS [24-01-2025(online)].pdf | 2025-01-24 |
| 21 | 202321047710-FER_SER_REPLY [24-01-2025(online)].pdf | 2025-01-24 |
| 22 | 202321047710-CORRESPONDENCE [24-01-2025(online)].pdf | 2025-01-24 |
| 23 | 202321047710-CLAIMS [24-01-2025(online)].pdf | 2025-01-24 |
| 24 | 202321047710-FORM-5 [20-03-2025(online)].pdf | 2025-03-20 |
| 25 | 202321047710-PatentCertificate22-09-2025.pdf | 2025-09-22 |
| 26 | 202321047710-IntimationOfGrant22-09-2025.pdf | 2025-09-22 |
| 1 | SEARCHSTRATEG1E_26-12-2024.pdf |