It’s exciting to see the number of calls we get at Eradani from IBM i users who are API enabling their applications and looking to connect their systems to the API economy. It is a sign of the critical nature of IBM i applications and data as well as proof that it is a myth that IBM i users are not moving their systems forward.
As the number of APIs rises and as they become deeply embedded in day-to-day business processing, it becomes increasingly important to manage them properly. APIs are different from internal application development for reasons including:
- They are typically directly consumed by external users (either other internal applications or by calls from outside organizations)
- They operate on a contract basis. The consumer is told what input data to send and in what format. Based on that, they are then told the data and format they will receive in return.
- External consumers must be provided with documentation on how an API is used
- External consumers must be notified of API changes
- The volume of calls can be variable and unpredictable
- The API does not need to know to what use the API results will be put
Here are some things to keep in mind to ensure the success of your API development and deployment processes.
One of the problems of a growing API base is finding the right API when you need it. It is important to avoid the situation where a developer decides it is easier to create a new API rather than reuse an existing one. Establishing a well-thought out structure for organizing APIs by business area or purpose will make it easy for developers to find and use them.
In many cases, APIs are built for machine-to-machine communication. There is no GUI or green screen interface. To test them, developers must write scripts to mimic how the consumers will access the APIs. The scripts must include valid tests as well as tests that exercise the error handling capabilities of the APIs. If you are expecting large volumes of API calls, it is important to perform load testing to ensure that API calls will be handled in a timely fashion. If you want to really help your API consumers, the API documentation should also be reviewed during the testing process to check whether it is easily understandable and consumable. Fortunately, there are a variety of open source tools available to automate much of this testing process.
Promotion and Deployment
Just like your other application changes, APIs need to move through testing stages before being deployed to production. At each stage of the lifecycle (eg. Dev, Test, QA, User Acceptance, Production), the build results need to be deployed to the appropriate servers and IBM i libraries. It is critical that the API accesses the IBM i resources using the appropriate library list for that stage. Managing your API development with a single set of DevOps tools or an integrated set of tools can help you avoid errors and production outages by ensuring that the APIs and the back-end code stay in sync.
Whether you are providing API access to outside users or to internal users of other applications, you need to ensure that everyone knows what version of the API is current. If you need to make an API change that will require the consumer to make a change to their systems, it is important to notify them of the coming change. Typically, you will want to continue supporting the old version for some period as users make the move to the new version. You can then deprecate the old version over time. Keeping your users informed of these update schedules will ensure they remain happy consumers of your APIs.
Implementing these processes will help keep your API ecosystem reliable and accessible. That, in turn, will lead to happy API consumers and ultimately to the fulfillment of your API objectives. Once you have successfully built, tested and deployed your APIs, you will want to monitor their usage and performance. I’ll talk more about that in an upcoming blog. Or, you can check out our Eradani webinar “Every Company Must Have an API Integration Strategy” on November 17th. We’d love to have you join us!