Programming to connect to external API's
Integrating with external systems that you don't control
June 12, 2020 - Willem L. Middelkoop
As part of the food ordering app I am building, I needed to design a reliable way to link the app to external systems. These external systems are beyond my direct control and include different checkout registers, kitchen management systems and ticket printers. Read along for more on designing for the unknown and unreliable.
Continue reading![Lemmid Store - an app to order takeaway food](/blog/2020-06-12_linking-lemmid-store-with-kitchens/images/i_00_Lemmid-Store-an-app-to-order-takeaway-food_500px.jpg)
![Separating the main backend server from the external systems by introducing a purpose built 'connector server'](/blog/2020-06-12_linking-lemmid-store-with-kitchens/images/i_03_Separating-the-main-backend-server-from-the-external-systems-by-introducing-a-purpose-built-connecto_500px.png)
![Printed ticket - through an external connection - including detailed order data like product modifiers (customer's choices per product)](/blog/2020-06-12_linking-lemmid-store-with-kitchens/images/i_01_Printed-ticket-through-an-external-connection-including-detailed-order-data-like-product-modifiers-c_500px.jpg)
![Integrating external systems into your app is like fitting third-party parts to an engine: you must carefully consider their fit and reliability (image of a combustion engine, public domain)](/blog/2020-06-12_linking-lemmid-store-with-kitchens/images/i_02_Integrating-external-systems-into-your-app-is-like-fitting-third-party-parts-to-an-engine-you-must-c_500px.jpg)