Using the SDK
The distinction between an API and an SDK is an important factor in determining how you will deploy and expand your developer ecosystem. These two tools, and the synchronicity between them, drive web communication and the implementation of third-party APIs.
Briefly, an API is simply an interface that allows software to interact with other software. An SDK functions in much the same way, providing a set of tools, libraries, relevant documentation, code samples, processes, and guides that allow developers to create software applications on/for a specific platform.
Hence, an API is like a set of building blocks or pre-fab modules you add to an exisiting structure, whereas an SDK as a full-fledged workshop, facilitating creation far outside the scopes of what an API would allow.
SDKs are the origination sources for almost every program a modern user would interact with. From the web browser you work on all the way to the video games you play at the end of the day, many were first built with an SDK, even before an API was used to communicate with other applications.
Realistically, the comparison between an API and an SDK can be confusing only because of how far they overlap. To simplify the concept, remember the following:
-
SDKs typically contain APIs; no APIs contain SDKs
-
SDKs allow for the creation of applications, much like the foundation of a house supports the structure that is built upon it
-
APIs allow for the functioning of applications within the SDKs defined parameters, like phone lines within a house.
With respect to Token.io's Bank Integration SDK, data structures are defined in protocol buffers. With protocol buffers, you write a .proto description of the data structure you wish to store. From that, the protocol buffer compiler creates a class that implements automatic encoding and parsing of the protocol buffer data with an efficient binary format. The generated class provides getters and setters for the fields that make up a protocol buffer and takes care of the details of reading and writing the protocol buffer as a unit. Importantly, the protocol buffer format supports the idea of extending the format over time in such a way that the code can still read data encoded with the old format.
The SDK build process generates Java code from these protocol buffers ("protobuf" in developer shorthand). See gRPC and Protocol Buffers in Token.io Basics and Google's Java tutorial on protocol buffers for additional details.
Get the latest protocol buffer definitions from Token.io's Bank Protocol Buffer technical reference. Download the most recent from Token.io's jfrog artifactory.
Before drilling down deeper into the open banking services supported by the Bank Integration SDK, the brief discussion of the object-oriented logic comprising its architecture that follows is recommended.