Avallone's APIs are built on four core principles that prioritize a seamless data synchronization process. These principles form the foundation for efficient and reliable API integration.
1. Bulk synchronization
The sync endpoint should support upload different data point in one go e.g. companies, company relations, officers, officer relations, etc - as much as possible.
However, there will be some exceptions e.g. documents.
2. Idempotent operations
Calling the sync endpoint with the same payload should not have any side-effect (except for activity logs).
3. Extract and load
The caller should be stateless i.e. the caller shouldn’t have to store the Avallone ids at their end for the integration to work. The caller should simply extract data from the internal system and send to Avallone. Avallone takes care of synchronization i.e. figuring out what needs to be created vs updated.
4. Accept partial data
End-user doesn’t always have the complete dataset. Whatever is available should be accepted.
What it looks like in practice?
Consider two different scenarios:
Handle collection with invalid entries
Consider an array e.g. [ A, B, C, D], if any of the values is invalid, then the rest should still be processed
Handle objects with invalid values
Consider an object e.g. { name: ..., parent: ..., address: ... }, if the value of the parent property is invalid, then the rest should still be accepted e.g. name, related address, etc.