Why use Apigee api bootstrap framework?

apigee api bootstrap framework by popularowl

Apigee api gateway

Api gateway architecture pattern is widely adopted across cloud native technology stacks. We wrote the detailed post describing the pros and cons of this pattern.

Apigee api gateway is widely adopted by enterprises and is one of the most used api management platforms from the list of api gateway products.

While designing and building Apigee powered api centric products and platforms for the last few years, we have developed Apigee api project blueprint framework.

This post describes the philosophy and details behind Apigee bootstrap framework. And why you would benefit using it for your own projects.

Importance of development lifecycle

If you are using Apigee api gateway as part of your technology stack, you will find (or you should be looking for) many great video tutorials about this platform.

Together with a really good, detailed product documentation and community forum these provide great help to technical architects and developers.

However, majority of the tutorials focus on the beginner level, UI based api development methods.

Great for learning the product itself, but not enough for incorporating Apigee api gateway to overall production development lifecycle within larger technology organisations.

Public and private apis play a critical role for exposing the business value of underlying technology and must become the integral part of overall product delivery lifecycle.

If technology organization is transforming and aiming for continuous integration / continuous delivery, TDD (test driven development), BDD (behaviour driven development), documentation as code – Apigee api gateway should become part of all these patterns.

This requires more structured approach than drag and drop, web UI based api development.

You need a structured framework.

Management APIs to the rescue

One of the most powerful features of Apigee api gateway product is its management api collection.

Apigee management apis allow to programatically setup, configure, control and manage apis, api products, functionality and integrations.

There are multiple ways of using such management apis.

This is the first point Apigee bootstrap framework addresses. Structured api and configuration deployments via Apache Maven and dedicated plugins.

Apigee bootstrap framework has opinionated api project structure, which is battle tested across multiple Apigee powered api platforms.

It contains the actual Apigee api proxy directory, tests and specifications directories, plus some helper scripts.

Single Maven configuration file (pom.xml) provides setup to perform releases to multiple environments. The framework philosophy is to keep things as simple as possible, but not simpler.

Example api deployments:

mvn install -P{environment name} -Dorganization={Apigee org name} -Dusername={Apigee username} -Dpassword={Apigee password}

Example environment configuration releases:

mvn apigee-config:targetservers -P{environment name} -Dorganization={Apigee org name} -Dapigee.config.options=update
mvn apigee-config:caches -P{environment name} -Dorganization={Apigee org name} -Dapigee.config.options=update
mvn apigee-config:kvms -P{environment name} -Dorganization={Apigee org name} -Dapigee.config.options=update

Framework uses Apigee config Maven plugin which allows to version control all platform configurations within JSON structure. And use continuous integration toolset for provisioning.

apigee api bootstrap framework features

API flows, Errors

Apigee bootstrap api framework implements the following:

  • Bad requests by default setup. While adding new api resources or methods to your apis, developers have to specifically enable them. Otherwise the default behaviour is http 400 bad request error.
  • Status endpoint. Provides the status endpoint for specific api. This allows monitoring to use monitoring tools and circuit breaker patterns.
  • Cross origin (CORS) header setup. Framework implements CORS response headers, which are dynamically configurable.
  • Error handling flow. Implemented based on proven production patterns.

Continuous delivery

  • Deploy to multiple environments conditionally, based on passing tests.
  • TDD setup with Cucumber and Apickli. Ready for creating tests before writing api implementation code.
  • Example Jenkins, CircleCI pipelines.

Summary

Did you like this post?
Subscribe to our API first monthly newsletter!

No Responses

Post Your Comment

Your email address will not be published.