We’re here to work with you at all stages.

View all services
Build products using the latest engineering practices and designs that aren’t just functional but beautiful with Launch.
Learn more
Rethink how your product delivery teams build and design your products. Architect to build the building blocks that allow experimentation with Amplify.
Learn more
Gain market share by designing and building product features. Gain velocity by embedding our experts in your team with Catalyse.
Learn more
Take control of your cloud costs and technical debt, and add coverage for DevOps with Control.
Learn more

Articles

From user research, digital strategy to solving bold engineering problems. Our team specialises in providing a suite of services that take an idea from a rough sketch to an enterprise grade product.
View all articles

Tutorials

Learning new technologies and frameworks ensures we are ahead of the curve. Here is a collection of step by step tutorials about things we've learnt. Learn with us!
View all tutorials

Products

We love open source, and we love giving back. Take a look at our open source products and how we're pushing the bounds of Engineering excellence one product at a time
View all products

Culture

We believe the best digital products are built by a diverse and skilled team. We’ve created a safe inclusive workspace, and we believe in diversity. We are a group that believes in software development and design is a craft. This is what unites us.
Learn more

Mission, Vision & Purpose

Our team is diverse. Each coming from a different background and beliefs. We think of product development & design as a craft. We love to learn new ways of improving our craft - be it learning new frameworks, or adding new specialties.
Learn more

White Papers

We believe the best digital products are built by a diverse and skilled team. We’ve created a safe inclusive workspace, and we believe in diversity. We are a group that believes in software development and design is a craft. This is what unites us.
Learn more

Wednesday Wisdom

Our team is diverse. Each coming from a different background and beliefs. We think of product development & design as a craft. We love to learn new ways of improving our craft - be it learning new frameworks, or adding new specialties.
Learn more

White Papers

We believe the best digital products are built by a diverse and skilled team. We’ve created a safe inclusive workspace, and we believe in diversity. We are a group that believes in software development and design is a craft. This is what unites us.
Learn more

Wednesday Wisdom

Our team is diverse. Each coming from a different background and beliefs. We think of product development & design as a craft. We love to learn new ways of improving our craft - be it learning new frameworks, or adding new specialties.
Learn more
View all articles
API Specifications & Architecture
September 8, 2021
Ali Hafizji
CEO

An application programming interface (API) defines how applications communicate with one another. The term API describes any interface. For this article and the ones to follow I will refer to Web APIs as an API.

A web API defines an interface through which applications access resources. These resources can be in the cloud, the local network, or an enterprise.

The design of these APIs has become exceedingly critical. As more companies embark on their digital transformation journey. In fact, I would argue that the most important pillar of a successful transformation is the design of the API. It helps application developers write better applications and ensures the business can incorporate changes, and a lot more.

A timeline showing when different API Specifications were created.

There are as many API design styles as there are APIs themselves. Over the years I've seen three major designs that have had great adoption:

  • REST: The oldest of the lot. It defines a set of stateless operations which demand resources as a response.
  • JSON API: JSON is a widely used message format but it doesn't have a fixed structure. You can create the same JSON message, formatted in several ways. JSON API is a specification that enforces messages to adhere to a format.
  • GraphQL: GraphQL is facebook's data query and manipulation language.

It's important to note that these standards were defined at different times. They are all great and solved problems that were important at the time of their invention.

Selecting an API specification is important and sometimes can be biased. To make this decision easy I've created a set of criteria and graded each design type on it.

A graph with criteria on the X axis and grade (Good, Okay, Bad) on the Y axis. This can be used to decide what API specification to use.
A table showing how you can select an API specification.

GraphQL not only supports most of the above criteria but was also designed to work in a mobile-first world. The primary mode of usage has changed from desktops to mobiles and will further change. It's important to be able to build applications to meet the user where s/he is.

GraphQL has a rich set of libraries for all client frameworks which allows for rapid application development. Libraries such as apollo allow you to build offline-first applications and a lot more. Several cloud providers now provide GraphQL services to build APIs. What REST did to API design GraphQL might do to all APIs in general. It has become the dominant API specification.

Where to go from here

Companies on the path of a transformation should choose GraphQL as an API specification. The ability to build clients that can query for the exact data they need is very powerful. Businesses can build a slew of applications on different platforms with one API.

This was the first article in this multi-part series. In the next article we'll write about under and over-fetching.

Wednesday is a boutique consultancy based in India & Singapore.

Let's talk

Wednesday is a boutique consultancy based in India & Singapore.

Let’s talk

2023