Thursday 28 July 2016

API {1st} - Gateway to Digital Innovation

API first is the new paradigm and there is lot of focus towards it. So what does it really mean and why there is so much of talk about it? 


What is API First?

Application Programming Interfaces (API's) are the interfaces provided on the resources that you want to leverage in the interaction process from your customers, partners, employees, business users, etc. via the application or GUI created on top of it.

That means that your applications or GUI will be as good as your API's because what you reflect on your UI is what you get from your API's so it's really important to have good design in place for the API's, that adds:

  • Consistency
  • Flexibility
  • Usability
  • Agility 
  • Performance
  • Security

API First means different things to different people in an enterprise, for CxO level it means that they have to think about investing into a platform that can support the development of API's, being the top priority. For architects it's about focusing on the API design first and deciding the catalog of API that will be made available to the developers for building the apps or webpages around it. For developers it's about how to manipulate the set of API's and develop the award winning applications and be the part of trusted community to provide positive feedback.

So API{1st} design is what we are talking about here, as it's the core for enabling the digital business. Companies like Netflix, Uber, Twitter, etc. have created the whole new business model powered by great API design and architecture around it because it provides a far better customer experience compared from the traditional software development approach where the heavy customer experience was built first and then the API's were created to access and manipulate the data. 

Design has been an important aspect of everything you build and it applies to the API's as well. It's important to have a right design in place up front so that you can understand how your API is going to look like:
  • URL format
  • supported Message Format
  • supported Methods
  • Custom Headers if any
  • Parameters
  • Pagination
  • versioning
  • exception management
  • authentication

It's always good to keep the API's simple so that the developer can look into the definition and work out what it does without reading much of the documentation. I am not suggesting that you should avoid having the documentation around API's, what I am trying to say is that API's should be self -explanatory and consistent across. 

Once the API is designed, share it with the team who are the consumers of it and let them try the Mock API to see if they like it or they want to suggest changes. Once it's finalized move the design to build the API. That's what API{1st} is all about

API{1st} Cycle

Great API's are part of great team work and it's important that there is an effective collaboration between the producers and consumers of the API as all of them will have different perspective and will help in designing a great API.   

To help you with the API{1st} iterative approach many vendors have come up with the products to support that, for e.g -  swagger.ioapiary.ioraml.org, etc.

There are multiple API description languages (ADL's), some of them are very popular (like Swagger) and sort of becoming standard for API's. API Transformer is one online tool that can help you convert one ADL to another and yes at back of it are API's.

Once you are done with design you need to choose a platform to convert the great design into real API's, there are many vendors with API Management products to help with that and my organization Axway is one of them.

If you are looking to start a Digital Journey then for sure API's are the starting point and API{1st} is where you start from. 

No comments:

Post a Comment