Skip to main content

SDK Features

APIMatic offers SDK Generation for your APIs to help accelerate the API consumption process. These SDKs generated are not just a mapping of the API onto the SDK. They contain additional functionality that adheres to the best coding practices to make the SDKs as robust and fault-tolerant as possible. The features and their description are shown in the table below:

Optimized Error MessagesAPIMatic allows defining custom errors that correspond to HTTP response codes other than 200. These errors translate to exception classes in the SDKs and provide meaningful information as to why the API call failed.
Immutable ClientClient classes of all the SDKs are designed using the immutable design pattern. This gives developers the assurity that once the client has been instantiated, no method call would mutate its state.
Retries with Exponential BackoffIf an API call fails due to network problems, it is retried with an exponentially increasing wait time up to a maximum retry count specified by the user. This is particularly helpful during temporary network outages.
Access to Http Response DataSDKs created can now also return the HTTP response information like response headers, status code and body on API calls.
Support for Sending and Receiving XML in API CallsIf you have an API definition that uses XML in the request or response bodies, you can now import it into APIMatic and generate SDKs that make the right API call.
Deprecating EndpointsAn endpoint that is marked as deprecated will result in a compiler warning or a notice logged to the console when the endpoint method is called by the SDK user.
Nullable Properties in ModelsWith full support for nullable properties, a null value will be sent in case the user does not assign a value to a property after initializing an instance of the model.
Code Style Compliant SDKsAll SDKs follow coding style conventions and best practices making the SDK's code consistent, reliable and maintainable.
Multipart RequestsYou can send JSON-encoded data in a multipart request by setting the encoding of the parameter as JSON in your API definition.
Simple Types instead of EnumerationsYou can now use simple types like strings or integers in the generated SDKs instead of using enumeration types in case you intend to change the definition of the enumerations frequently over the course of the API lifetime.
Configurable Http ClientsDevelopers can provide their own instance of the HTTP client during client initialization. This gives them the ability to override default configurations used by our SDKs.
Getting Started READMEs with all SDKsAll SDKs come bundled with a comprehensive README that contains information about environments, configuration, authentication and code samples to initialize the client. Also a step by step guide on setting up the SDK in a popular IDE has been given.
Code Samples and Usage Examples for Every Endpoint and ModelAll SDKs have detailed documentation on all endpoints and models. The documentation provides code samples for the endpoints by dynamically populating dummy data needed for an endpoint call.
Async OperationsFor languages that support asynchronous operations, SDKs provide asynchronous methods to call endpoints to fully utilize the potential of async programming paradigm.
Extendable InterfacesSDKs can be configured to generate interfaces for controller classes. These interfaces can be used to extend the functionality of the SDKs.
Thread Safe OperationsSDKs are designed to handle concurrent API calls in a thread safe manner.
LoggingLogging can be enabled to diagnose and debug issues in the API calls.
OAuth Support and Utility MethodsAll SDKs support popular oauth flows and provide utility methods to generate or refresh access tokens.
Handle Cancellation of API callsSDKs support cancellation of API calls during the API call execution.