I have been thinking about this for a long time. There HAS to be a defined way to build APIs in a scalable way.
If you have used Node, Express, etc in your side projects, you might have felt that after a point in development, debugging truly becomes a pain. Sure, enterprise-level API codes are great. But a lot of times, these configurations are too much, and probably not even needed in other projects. To be honest, I haven't seen a lot of Open-Source API codes either to make a judgement on how experienced developers build their APIs.
Anyway, I came across an amazing framework recently, and I think if you are coding a complex API, this should be your way to go.
Nest.js
Nest.js is a framework for building efficient, reliable and scalable server-side applications.
You essentially break your APIs into controllers, services, and modules, which allow you to modularize the smallest of functionalities in your endpoints or the API as a whole.
Why is modularizing important?
As I have talked about in my previous blogs, 2 main reasons include easier debugging and better code readability. Of course, not to forget re-using same codes as functions is one of the most basic rules of programming.
Reasons to choose:
- Your code is finally scalable in the right sense.
- Without thinking too much, you have created actual re-usable functional components that interact with DB and isolated them with the endpoints (controllers).
Cons:
The only disadvantage I found is that debugging in this framework is a little abstracted. This is because, although you write your code in TypeScript, it is compiled and built into simple JS code. Quite often, the exact file and line of the bug in your code might not be that easy to figure out if it's a runtime error.
But I won't say that it's purely Nest's disadvantage.
Nevertheless, given the benefits of TypeScript and Nest together, the debugging con isn't too much. It's not like you just cannot debug your code!
Comments
Post a Comment