Customizable and SaaSy REST APIs

11:00 AM - 11:45 AM on August 16, 2014, Room 701

Juan Gutierrez

Audience level:
intermediate
Watch:
http://youtu.be/Ga5v5cPhhfs

Description

A solution to keep your code base clean in a SaaS environment that is predominantly driven by API web services, which has occasion for minor customization of core web services, based on the needs of your clients.

Abstract

Many SaaS companies today are constructed with scalable, robust, versatile and well documented APIs - or at least that’s what those of us in SaaS companies strive for. However, depending on the nature of the business, sometimes an API needs to take into account certain customer specific business rules. While it is ideal to separate these concerns, sometimes this is not possible. Example: My current project: OrderGroove. A web platform built to support these kinds of needs would ideally have a well defined core application and any “customer customizations” would extend the already defined core and configure functionality as needed. Also, if absolutely necessary, core methods could be overridden, but depending on how the code is set up, the override could lose any updates/optimizations/general goodies that future core updates provide. By using Django’s class based views, Django REST Framework “ViewSets” and routers, I was able to put together OOP concepts with API web services to create a clear and easily maintainable separation of core concerns and client customizations.