I thought that it would be valuable to share a ‘hello-world’ for APIs. Rather than trying to boil the ocean in one post, I wanted to provide some light reading which gives you a mental model of how to think about APIs, and that you maybe able to use this as a foundation to build upon.
Vendors such as Procore, Autodesk, Asite, Bentley and other cloud software providers offer APIs that expose an interface to their respective platforms to enable us developers to extend them with our own domain specific applications.
Please note the article focuses on Autodesk Forge APIs but concepts apply to the majority of vendor APIs.
Let's start by explaining what an API is. API is an acronym for Application Programming Interface and in short, it exposes some functionality belonging to a program so that it can be interacted with. Forge APIs are web APIs, which are simply an API that is accessible through internet specific protocols and is an enabler for developers to write custom applications to do stuff with said program via the internet. Let’s explain from a high level how this works using a restaurant as an analogy.
We visit a restaurant, take a seat and order a burger from the kind waiting staff specifying that we would like it medium-rare with extra crispy bacon. The kitchen prepares our order according to what we have specified to the waiting staff and once complete, our burger is brought to our table to enjoy. In this case, the waiting staff is an interface for everything that happens behind the scenes and is responsible for delivering that value added item - Our tasty burger. The same principles apply when we use an API - The API documentation gives us the menu of things available to eat and any available options. Then, we send details of what we want to our API (i.e ), it does something, then returns data according to our specified input parameters.
This can enable us to write custom applications to interact with a program however the API allows. In context of an AEC project, this might include getting model information, updating project permissions, initialising projects using a set configuration or creating and deleting issues once resolved.
As you browse the Autodesk Forge documentation, you will find high level categories of API such as “Model derivative API”. In this API you will find all of the functions to do with conversions of data formats that autodesk use to drive BIM360 and other platforms. If you think about when you upload a design file as a user of BIM360, you wait a while, then you can view it in their viewer. Thats because the file goes to this API to translate it into a format that the viewer can display in the BIM360 platform.
I hope this brief introduction to APIs will give you more confidence to take a look and imagine the possibilities to customise your cloud platform solutions.
If this has helped, please give me a thumbs up or if you have ideas to improve, please share!
Thanks for reading.