AFA Sedona API

The AFA Sedona API was an in-house RESTful API which allowed all internal web and mobile applications to communicate with the Sedona Office billing platform.  Although Perennial Software, creators of Sedona Office, did have an API at the time which AFA used to perform proprietary operations, the service was still in the alpha stages and would prove to be very unreliable.

To circumvent the limitations of the official package, I developed the AFA Sedona API which is a Java-based RESTful platform for communicating with the backend database.  The API provided 90% of the functionality that was made available by the official package (minus those that had proprietary logic in them), and several other useful features that were missing from it.

One major limitation of the official API was that it did not have any sort of Authentication system built into it.  Although I was responsible for most of the development operations that were underway, AFA still relied on developers overseas for smaller projects.  These projects would often require the ability to perform CRUD operations on Sedona Office.  With the official package, this meant that we had to grant complete control to add/modify and delete anything that the developers desired without a way to track what they had done.  Although nothing malicious had ever been done, there were several situations in which developers would inadvertently use the wrong API call in a feature which would cause issues within the internal logic of Sedona Office.

My implementation of the API allowed for the use of JSON Web Tokens as a means of authorizing each request that is made.  This Web Token would be used to authorize an application to use a specific set of features that were required for the project to do its work.  This would limit development teams to only use the features of the API that they needed to perform their job.  The API even had the ability to log any applications that caused an HTTP 4xx or 5xx status code on the server so that bugs could easily be patched.

Although the official Sedona API package that was supplied by Perennial Software is still needed for one or two operations that I was not able to implement myself.  The homegrown AFA Sedona API has proven itself to be an all-around improvement and has virtually removed all of the complications around building Sedona based applications.