Changes to the API

It is not the strongest that survive, nor the most intelligent, but the one most responsive to change.

The IF Platform API exposes multiple workflows to handle different use cases with connections on a single concept. Some of the high-level changes we will be required to do over time are workflow additions, workflow customization changes and adding connections. These high-level changes might cause some data structures to change (additions of new fields, some fields becoming optional or required etc…).

This guide is here to help you build your integration with the IF Platform in a way that ensures that it will remain functional no matter what releases occur thereafter.

1. Versioning & Breaking Changes

We will not release any breaking changes to any API. If we need to completely redesign and change the structure of an API, then instead we will release a new version of the API.

2. Container Objects

We have implemented the container objects into our API to ensure we have enough flexibility while we are releasing major changes to the API without affecting existing integrations.

Container objects allow us to add new workflows/connections to a particular operation with completely different input or output data structures. We use the workflow container object as an example to explain the concept, but the same principles apply to other container objects as well.

For instance, if you are using the "direct" workflow to create clients, you will not be affected by the addition of the "migration" workflow for the same operation. This is the result of having a completely different input data structure, as the data structures are evaluated based on the workflow code supplied to the API.

Container objects also allow us to add new customization to a particular workflow without breaking the existing usage of that workflow. By adding new "optional" fields to the workflow container object, where there were previously no values corresponding to the behaviour before the addition of that field, we can add new customization where existing integrations continue working as expected at the same time providing the capability to use the new customization when required.