System and method for neutral application programming interface
Systems and methods for neutral application programming interfaces are disclosed. In one embodiment, the disclosure relates to a system for neutral application programming interfaces. The system may comprise a device. The device may be configured to receive a request. The request may comprise an outer payload and an inner payload. The device may be further configured to parse the outer payload based on a common definition of the outer payload. The device may be further configured to extract information of an action from the outer payload. The device may be further configured to parse the inner payload based on a definition of the action. The device may be further configured to process the action.
1 . A method comprising:
receiving, by one or more processors of a first device, a request from an originating device, wherein the request comprises an outer payload and an inner payload;
parsing, by the one or more processors, the outer payload based on a common definition of the outer payload to derive an action to be taken, wherein the action to be taken validly comprises any one of a plurality of actions defined at the first device;
parsing, by the one or more processors, the inner payload based on a definition of the action to be taken, wherein the definition of the action to be taken specifies a structure of the inner payload;
validating, by the one or more processors, the inner payload by comparing information associated with the outer payload with information associated with the inner payload; and
in response to validating the inner payload, processing, by the one or more processors, the parsed inner payload with a corresponding script.
2 . The method of claim 1 , wherein the action to be taken comprises building a tunnel with the originating device and a destination device at respective ends of the tunnel.
3 . The method of claim 1 , wherein processing the parsed inner payload comprises:
sending, by the one or more processors, a plurality of requests to a corresponding plurality of servers; and
receiving, by the one or more processors, a plurality of responses from the corresponding plurality of servers.
4 . The method of claim 3 , further comprising:
in response to determining that receiving the plurality of responses is complete, sending, by the one or more processors, a response to the originating device, wherein the response to the originating device comprises information derived from the plurality of responses.
5 . The method of claim 3 , wherein the plurality of requests are sent to the corresponding plurality of servers in parallel.
6 . The method of claim 1 , wherein the inner payload is encrypted and parsing the inner payload comprises decrypting the inner payload.
7 . The method of claim 1 , wherein receiving a request from an originating device comprises receiving at least one packet over a secure Internet connection transport mechanism, wherein the outer and inner payload comprises a payload portion of the at least one packet.
8 . The method of claim 7 , wherein the secure Internet connection transport mechanism comprises a first encryption of the payload portion, and the inner payload is further protected by a second encryption.
9 . A system comprising:
a memory storing instructions; and
one or more processors coupled to the memory, the one or more processors being configured to execute the instructions, the instructions when executed causing the one or more processors to perform operations comprising:
receiving a request from an originating device at a first device, wherein the request comprises an outer payload and an inner payload;
parsing the outer payload based on a common definition of the outer payload to derive an action to be taken, wherein the action to be taken validly comprises any one of a plurality of actions defined at the first device;
parsing the inner payload based on a definition of the action to be taken, wherein the definition of the action to be taken specifies a structure of the inner payload;
checking data integrity of the inner payload by comparing information associated with the outer payload with information associated with the inner payload; and
in response to checking the data integrity of the inner payload, processing the parsed inner payload with a corresponding script.
10 . The system of claim 9 , wherein the action to be taken comprises building a tunnel with the originating device and a destination device at respective ends of the tunnel.
11 . The system of claim 9 , wherein processing the parsed inner payload comprises:
sending a plurality of requests to a corresponding plurality of servers; and
receiving a plurality of responses from the corresponding plurality of servers.
12 . The system of claim 11 , wherein the operations further comprise, in response to determining that receiving the plurality of responses is complete, sending a response to the originating device, wherein the response to the originating device comprises information derived from the plurality of responses.
13 . The system of claim 11 , wherein the plurality of requests are sent to the corresponding plurality of servers in parallel.
14 . The system of claim 11 , wherein the inner payload is encrypted and parsing the inner payload comprises decrypting the inner payload.
15 . The system of claim 9 , wherein receiving a request from an originating device comprises receiving at least one packet over a secure Internet connection transport mechanism, wherein the outer and inner payload comprises a payload portion of the at least one packet.
16 . A non-transitory computer-readable medium storing instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations comprising:
receiving, at a first device, a request from an originating device, wherein the request comprises an outer payload and an inner payload;
parsing the outer payload based on a common definition of the outer payload to derive an action to be taken, wherein the action to be taken validly comprises any one of a plurality of actions defined at the first device;
parsing the inner payload based on a definition of the action to be taken, wherein the definition of the action to be taken specifies a structure of the inner payload;
confirming that the inner payload is secure by comparing information associated with the outer payload with information associated with the inner payload; and
in response to confirming that the inner payload is secure, processing the parsed inner payload with a corresponding script.
17 . The non-transitory computer-readable medium of claim 16 , wherein the action to be taken comprises building a tunnel with the originating device and a destination device at respective ends of the tunnel.
18 . The non-transitory computer-readable medium of claim 16 , wherein processing the parsed inner payload comprises:
sending a plurality of requests to a corresponding plurality of servers; and
receiving a plurality of responses from the corresponding plurality of servers.
19 . The non-transitory computer-readable medium of claim 18 , wherein the operations further comprise, in response to determining that receiving the plurality of responses is complete, sending a response to the originating device, wherein the response to the originating device comprises information derived from the plurality of responses.
20 . The non-transitory computer-readable medium of claim 18 , wherein the plurality of requests are sent to the corresponding plurality of servers in parallel.
21 . The non-transitory computer-readable medium of claim 16 , wherein receiving a request from an originating device comprises receiving at least one packet over a secure Internet connection transport mechanism, wherein the outer and inner payload comprises a payload portion of the at least one packet.
22 . The non-transitory computer-readable medium of claim 16 , wherein the corresponding script triggers the first device to form and send, to at least one device along an end-to-end tunnel to be built from the originating device to a destination device, a respective outgoing request to configure the at least one device to function as part of the end-to-end tunnel, the respective outgoing request formatted with a respective outer payload indicating a tunnel-forming action and a respective inner payload formed according to a definition for the tunnel-forming action.