API First Design - It's working!
What does it mean
API first design is the approach of looking at the coarse-grained business transactions that need to happen on your business entities, which can happen from a user interface or from direct service-to-service integrations, and designing your API contracts to meet this diverse set of business needs.
What are the benefits
We didn't necessarily start out saying we were going to do API first design, but we quickly came to realize how it empowers us to support robust integrations and user interfaces.
When building one of the first end-to-end Cloud Supply Chains, you need to be flexible when it comes to system integrations, because the real-world processes vary greatly when you are a company that sells beds compared to a company that sells hand-sanitizers. In addition, it is paramount that our Customers have real-time visibility across their supply chain, so the user interface is also an important stakeholder in our design.
Using an API first design has allowed both our UI and our Integration layer to co-exist and benefit from one another.
Tools we use
Some of the key tools we use for our API design
- For the API design, mocking, examples, and document we use Postman
- We leverage the RESTful style in our API design
- To avoid bikeshedding, we leverage the JSON:API specification to structure our request and response objects.
- We use Open API to annotate our APIs so that we can quickly generate clients and use the generated client code when running API and component tests
So what, who cares?
To be honest, we didn't at first. As I mentioned before, we didn't start out saying we were going to do an API first design. But the more we began to reap the benefits, whereby the UI and the Integration layer were leveraging the same APIs, the more we realized we need to make this our de facto practice. And now it is!
Help design the APIs for a Cloud Supply Chain?
We have a great team and we are making great strides. We are also experiencing triple digit, year-over-year growth due the acceleration of ecommerce by COVID. Having a Cloud Supply Chain gives companies key business capabilities – speed, flexibility, and cost savings. Please checkout our careers page to see how you can help us!