We all started with Web Development with some MVC framework initially(at least I did). Web apps back then would start a thread with new requests, the thread would process the request, and a “view” (HTML) would be generated and given to the client to render.
Layer after layer of inadequate software architecture, system design, size, and technical rot would crumple systems. In addition, tremendous amounts of valuable intellectual property — business rules, procedures, and workflows — were tightly coupled and a lacked reusability.
Since then, we’ve made significant progress. We could use reusable libraries to create better monolithic applications, but what if we wanted to create scalable(horizontal and vertical) architectures that could be distributed over several computing resources? What if we wanted to support desktop, online, and mobile devices with as much reusability and central control as possible?
Eventually came the world of APIs. The concepts of distributed software APIs and how simple Request/Response protocols may power almost any business activity were popularized by SOAP and REST.
With this evolution, we often found every team having 3 main pillars – the data person(dealing with data store), the service person(Writing APIs and building scalable systems) and an UI person(creating the User Interfaces).
What makes an API beautiful ?
In today’s world of SAAS, APIs are really a product that powers your UI and is as important as that shinier User Interface and underlying data pool/lake/ocean. Creating beautiful API is an art and these key factors determine how beautiful you APIs are –
- Consistency : refers to the idea that one portion of your API should appear to be identical to every other section of your API. Having a shared set of rules and patterns makes the API consistent.
- Simplicity : is the idea that the API and its models makes sense. Is the intent of your domain reflected in your models and paths(Domain Driven Design)? Do they organize information in ways that are simple to comprehend and process? Answering these questions makes the API simple for consumers to consume.
- Technically compliant : confirms that it follows the API Design best practices and is properly documented.
Check this blog on some of the best practices.