One API to rule them all - Config based development
vivek keshore (~vivek17) |
As a backend developer, I have worked on multiple web applications. It may look easy, but writing or developing API for a web app or a mobile app is not easy. We have to take care of security, authentication, authorization, performance, scalability, cloud deployment, and so on. The premise of this talk is about my recent experience and learning which may be useful for other web application developers.
Premise: Recently I was tasked to develop 100 - 150 APIs, for one of the project. The project duration was 6 months, and I was supposed to write a small PoC to showcase how I will be implementing all the APIs. There were 100s of tables, with varying columns and sizes. Some had 100s of columns while some had just very few. After having an internal discussion with the Technology Leader and my mentor in my organization, we came up with a configuration-based approach, where we designed the system in such a way that one API was enough to handle everything. No need to write 100s of APIs.
We can add or remove features without changing the code, and without doing any redeployments.
I completed the PoC in 2-3 days, and because of the design approach, almost 70% of the actual project requirements were already implemented. Thus, I saved months of development time, and spent my time more on making the code more optimized, scalable, and cutting the corner cases.
What can the audience expect:
In this talk, I will be talking about the approach or an idea, which would enable us to write web development applications in such a way, that a single API would be enough to access any data. That's all. You can provide an API-based interface to access any data from any database, in any form.
This will be a configuration-based API development approach, where without changing any code, or without any redeployment, how we can add or remove the functionalities.
I will be demonstrating the code either in the FastAPI framework or Flask Framework. I will explain the design, idea, and approach, and under which scenarios this approach will be extremely helpful.
If implemented properly, this could actually reduce the amount of development from months to just a few days. As evident from my example and experience, this approach will enable us to develop the application with fewer developers, and it will save a lot of time and money.
- 0-5 mins: Introduction and problem faced.
- 5-10 mins: Solution and design.
- 10-25 mins: Live demo accompanied with code.
- 25-30 mins: closing remarks and questions.
It will be a live demonstration accompanied by code, so there are no slides.
- Basic Python knowledge
- Basic web application development concept, like request, response, API, database etc.
- Familiarity with a Python-based web application development framework will be an added advantage like Flask, FastAPI, Django, Pyramid etc
I am a technology professional with 9+ years of experience in Python. I am currently working as Technical Lead (Python) at SenecaGlobal Inc, Hyderabad, and have previously worked at various software engineering positions with various MNCs like IBM, Harman International, and as a consultant at Google India.
I have done Master of Technology degree from the International Institute of Information Technology Hyderabad (IIIT-H).
I have been involved with multiple professional projects in various industrial domains and technical fields. My expertise is in application development, data processing, and analysis, data structures, and algorithms, various non-relational and relational databases, Python, Pyramid, Flask, FastAPI, Celery, RabbitMQ, Cassandra, AWS, and various other tech stacks.
My personal interest is in exploring new technologies, web application development, IoT systems, code in Python to solve problems, and read novels. I also write and share my thoughts occasionally on Quora and Medium.