In quest of the right Python SDK for QuickBase
In order to process triggers such as when records are added, or modified etc in QuickBase, I chose Python as he language of choice and what better way to look for the SDKs than github?
So I started to search for various Python SDK repos for QuickBase and in this article I plan to show a feature-wise comparison of some of the comprehensive SDKs I found. At the end of the day, I think we need to use more than one SDK within a given application because no one SDK has it all.
So what is it that we look for in an SDK for QuickBase? Basically,a way to query existing records, add new records, edit existing records, right? But how about being able to upload files, import from CSV files, or run existing import jobs in QuickBase? Looking for one SDK that does it all seems to be very difficult and so I ended up deciding to use two SDKs in the same project/application as you can see in the picture below:
At the end of the day, I think we need to use more than one SDK within a given application because no one SDK has it all.
Kudos and thanks to those developers of these SDKs. I checked with QuickBase and they said their official SDK was the QuickBaseAdmirer. However, OysterHotel and WesTower are the hightlights because they went beyond the basics and provided support for File uploads, RunImport and even CSVImport. With a combination of Connected Tables and import jobs a lot can be accomplished if you want to import data from one spreadsheet and distribute to multiple related tables.
About the Python version supported, QuickBase Admirer has clearly included both lines of code in 3 different places in their SDK code with comments on which line is compatible with Python version < 3 and which one is 3 or above. This makes it clear. For Oyster and WesTower they have not explicitly stated the Python versions they have written this in, but looking at the Wikipedia article on Python version history, and comparing the date stamps of the files and the dates when each Python versions were released, it is likely that these two support 3 and above. Hope to get the versions from the original authors.
The rest of the "features" I am comparing are hopefully self-explanatory but if my readers have any specific questions, I will be happy to clarify.
About XML, QuickBase Admirer's SDK supports only query string parameters and not POST messages in XML format. I think that explains why they do not support file uploads. (You definitely need to support XML messaging for uploading files to the file attachments fields).
As you can see no one SDK supports both File attachments AND API_RunImport. So I have decided to primarily use WesTower's SDK and OysterHotel if I am uploading files in API_AddRecord and API_EditRecord calls.
If you found this useful, or have questions, please feel free to comment below. Constructive feedback is always appreciated.
Credits where they belong:
- UnixStickers
- https://github.com/WesTower/py-quickbase
- https://github.com/oysterhotels/quickbase
- https://github.com/theWPValet/pyQuickBase
- https://github.com/QuickbaseAdmirer/Quickbase-Python-SDK