API Development Lifecycle
Tags: beginners, webdev, datascience, design
Published: 2020-06-03 06:14:45

![Cover Image](https://dev-to-uploads.s3.amazonaws.com/i/sqd888r878y9ukykx9lz.jpg)

The original post was on [API Development Lifecycle](https://www.maxongzb.com/api-development-lifecycle-reading-time-5-mins/) and cover image by [Jason Rosewell on Unsplash](https://unsplash.com/photos/ASKeuOZqhYU)

# Introduction
When it comes to API development lifecycle. I found there is not a lot of information regarding it for understanding. Which is GraphQL is more popular than talking about API development.

API development to me is more like plumbing work for infrastructures but is not really sexy to talk about it.  Which servers, front-end and the latest or greatest AI depends on it. Without the APIs that is supplying them the data, any front-end, server integration and AI is worthless without it. Data is considered a precious commodity of the 21st century.

# What is API Development Lifecycle?
API development lifecycle covers the steps used to create an API from designing it to the discovery stage. Where it is discovered preferably through API marketplace. 

Who are hunting for a service or data to intergrate to their products or services. To increase the value it provides to the customers or user.  I will be using [API Evangelist's API Lifecycle](https://apievangelist.com/2018/10/11/api-evangelist-api-lifecycle-workshop-on-api-design/) as it seems to cover the breadth of the API development lifecycle.

* Definition - Using definitions as the centre of the API design process, developing an OpenAPI contract. For moving things through the design phase, iterating, evolving, and making sure the definitions drive the business goals behind each service.

* Design - We build a playbook which we look at the approach to design for all APIs. With the focus of consistently deliver services across teams. Beginning with REST, but also eventually allowing the leveraging of hypermedia, GraphQL, and other patterns when it comes to the delivery of services.

* Versioning - Managing the definition of each API contract being defined as part of the API design stop for this area of the lifecycle, and having a coherent approach to laying out the next steps.

* Virtualisation - A environment that is sandboxed with API mockups and mock data. That reflects exactly how it should behave in a production environment.

* Testing - Going beyond just testing. Making sure that a service is being tested at a granular level, using schema for validation. Having test cases in place. Each service is doing **exactly**, what it should be doing and nothing more.

* Landing Page - Making sure that each individual service is designed as a landing page for accessing its documentation, and other elements during the design phase.

* Documentation - Ensuring that API documentation is comprehensive, up to date. If possible interactive and available for all APIs being designed. For all stakeholders to easily understand is API is going to accomplish.

* Support - Ensuring there are support channels available for an API. Stakeholders know who to contact when providing feedback and answering questions in real, or near real-time, pushing forward the design process.

* Communication - Making sure there is a communication strategy for moving an API through the design phase. Knowing that stakeholders are engaged as part of the process, with regular updates about what is happening.

* Road Map - A roadmap on what is being worked on. With each service being designed, pushed forward by the development team.

* Discovery - Make sure all APIs are discoverable after they go through the design phase. Ensuring each type of API definition is up to date, and catalogues are updated as part of the process.
 
# Analysis of the API Development Lifecycle
Based upon the API development lifecycle. It encompasses diverse skillsets for API development. 

Which each of it has its own specialisation technical skills. I personally believe that most APIs that I had come across falls short in the **documentation**, **support** & the **discovery** phase. After the hard work has been completed by the development team.

Having.a excellent documentation reduces the amount of time for support needed for your API.  It serves to enhance developer experience & marketing material. To deliver to potential users of your own API.

I had read the documentation that fails in delivering vital information for me to get started. Despite there was tons of work and thought was put in place for the reader or developer.

Which I was only able to use it through multiple trials or error. With constant communication with the API development. For 3 or more days on just a single API endpoint. Which could be saved by just providing a quick start for anyone integrating the API. 

# Examples of Awesome API Documentations 
After working with multiple public APIs or other SaaS companies that provide API services for me to integrate into my products or services. 

I found that a few companies invested a lot in various aspects of their own development lifecycles. To serve as a model, when you are looking to develop an API.

* [Twilio](https://www.twilio.com/docs/usage/api) - They even had a game called [TwilioQuest](https://www.twilio.com/quest) that serves to introduce concepts of using their own APIs.

* [SendGrid API Reference](https://sendgrid.com/docs/api-reference/) - Has been brought over by Twilio. Which the quick start allows you to start sending of transactional email. 

* [Stripe API Reference](https://stripe.com/docs/api) - It's a joy to just look at their documentation as they spend a lot of time and effort to make their documentation to be great. Which had lead to tons of developers integrating it for anything related to e-commerce.

* [Google News API Reference](https://newsapi.org/docs/get-started) - Provides you tons of examples on how to use their parameters for each API service. It is clean and easy to understand documentation makes playing around with it to get the job done. 

# Conclusion
If you had missed out on the article, here is what I had covered so far on the following:
* API development lifecycle - The various stages of the API development from definition to the discovery aspect of the API services.

* Analysis the API Development Lifecycle - What I feel is lacking in existing API services can be further improved.

* Examples of Excellent API documentation - Which becomes more important for a SaaS company or organisation that is looking towards providing data for anyone to use it to build products or services.

I hope that with this article it helps you to have a general understanding of API development lifecycle. Which goes beyond API request methods, GraphQL and even [OpenAPI](https://www.openapis.org/).

If you like this article do **sign up** for my [Adventurer's Newsletter](https://maxongzb.activehosted.com/f/1) which contains interesting content I stumble across over the week in the area of **Python**, **Web Development**, **Startup**.

You can also **follow** me to get the **latest** update of my article on **Dev**


# Reference
* [API Lifecycle Development by API Evangelist](https://apievangelist.com/2018/10/11/api-evangelist-api-lifecycle-workshop-on-api-design/)
* [What is API Lifecycle Management](https://swagger.io/blog/api-strategy/what-is-api-lifecycle-management/)
* [Full API Lifecycle Management a Primer](https://developers.redhat.com/blog/2019/02/25/full-api-lifecycle-management-a-primer/)
* [Twillo API Reference](https://www.twilio.com/docs/usage/api)
* [TwilioQuest](https://www.twilio.com/quest)
* [SendGrid API Reference](https://sendgrid.com/docs/api-reference/)
* [Stripe API Reference](https://stripe.com/docs/api)
* [Google News API Reference](https://newsapi.org/docs/get-started)
* [OpenAPI](https://www.openapis.org/)