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:
|Custom Error Messages
|APIMatic CodeGen allows defining custom errors against 4XX - 5XX HTTP response codes. You can use this feature to define meaningful information to failed calls. For more details on this feature, refer to Custom Error Messages.
|Dynamic Error Messages
|Dynamic error messages allow you to define templated messages that are populated with data at runtime. Through this feature, users can figure out the exact reason behind the failed call and debug accordingly. For more details on this feature, refer to Dynamic Error Messages.
|Client 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 Backoff
|If 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 Data
|SDKs 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 Calls
|If 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.
|An 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 Models
|With 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 SDKs
|All SDKs follow coding style conventions and best practices making the SDK's code consistent, reliable and maintainable.
|You 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 Enumerations
|You 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 Clients
|Developers 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 SDKs
|All 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 Model
|All 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.
|For languages that support asynchronous operations, SDKs provide asynchronous methods to call endpoints to fully utilize the potential of async programming paradigm.
|SDKs can be configured to generate interfaces for controller classes. These interfaces can be used to extend the functionality of the SDKs.
|Thread Safe Operations
|SDKs are designed to handle concurrent API calls in a thread safe manner.
|Logging can be enabled to diagnose and debug issues in the API calls.
|OAuth Support and Utility Methods
|All SDKs support popular oauth flows and provide utility methods to generate or refresh access tokens.
|Handle Cancellation of API calls
|SDKs support cancellation of API calls during the API call execution.