APIcurio: An Integral Part of Your API Program on Kubernetes

APIcurio: An Integral Part of Your API Program on Kubernetes
Photo by Louis Hansel on Unsplash

In the interconnected world of software applications, APIs reign supreme as the linchpin that brings everything together. In such a realm, the efficient management of APIs plays a significant role. To streamline API management, API registries have emerged as indispensable tools, and among them, APIcurio stands out. This open-source API design platform has demonstrated remarkable capabilities for enhancing API programs. This blog post aims to guide you on installing APIcurio on a Kubernetes cluster, adding an API definition to the registry, and how it can generate value for your API program.

What is APIcurio?

APIcurio is a robust API design platform that provides services like an API Registry, API Designer, and an API Mocking system. It supports OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specifications, enabling the creation, management, and sharing of APIs in a streamlined manner.

Installing APIcurio on a Kubernetes Cluster

For the purpose of this blog post, we assume that you already have a running Kubernetes cluster. If not, various services like Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), or Azure Kubernetes Service (AKS) can help you set one up.

Step 1: Deploying APIcurio

The most convenient way to deploy APIcurio onto a Kubernetes cluster is to use Helm, the package manager for Kubernetes. Helm uses a packaging format called charts, which are a collection of files that describe a related set of Kubernetes resources.

Use the following commands to add the APIcurio chart repo and install it:

helm repo add apicurio https://apicurio.github.io/apicurio-registry-helm-chart
helm install my-apicurio apicurio/apicurio-registry

Step 2: Accessing the Deployment

Once deployed, you can access APIcurio by using the Kubernetes service that Helm creates. This service exposes the deployment to the rest of your cluster.

kubectl get svc my-apicurio-apicurio-registry

This command will return the cluster IP and the port on which APIcurio is running. Use these details to access the APIcurio interface.

Adding API Definition to the APIcurio Registry

To add an API definition, follow these steps:

Step 1: Access the APIcurio User Interface

Access the APIcurio UI using the cluster IP and port from the earlier step.

Step 2: Import the API Definition

In the APIcurio UI, click on “APIs” and then click on “Import API.” Select the source of your API definition, which can be a URL or a local file in JSON or YAML format. APIcurio will validate the API definition and add it to the registry.

Adding an API Definition to the Registry via APIcurio API

Once APIcurio is installed, you can add an API definition to the registry. APIcurio provides a REST API that you can use for this purpose. Here’s a simple example of how to add an OpenAPI definition:

  1. Create the API Definition: First, create an OpenAPI definition for your API. You can do this manually or use APIcurio’s visual editor.
  2. Submit the Definition: Use the POST /groups/{groupId}/artifacts endpoint to add the API definition to the registry. Before doing so we have to create a group to get the groupId which is needed for the request using the POST /groups endpoint. The payload for the request should like this,
{
  "id": "customer care",
  "description": "In this group can find alle APIs owned by customer care",
  "properties": {
    "custom-1": "foo",
    "custom-2": "bar"
  }
}

Include the API definition in the body of the request. Here’s an example using curl:

curl -X POST "http://<apicurio-url>/groups/{groupId}/artifacts" -H "Content-Type: application/json" -d @<path-to-your-definition.json>

Remember to replace <apicurio-url> with the URL where your APIcurio instance is running and <path-to-your-definition.json> with the path to your OpenAPI definition file.

Upon successful execution, your API definition will be added to the APIcurio registry and accessible to developers and other stakeholders.

The Value of APIcurio in Your API Program

APIcurio provides several advantages that can enrich your API program:

  1. Collaboration: With its ability to support team collaboration, APIcurio enhances productivity, making it possible for multiple users to concurrently work on the same API design.
  2. Versioning and Governance: APIcurio provides API versioning, enabling you to manage different versions of an API. It also aids in API governance, helping enforce consistency across all APIs.
  3. Documentation: APIcurio provides a central repository for API documentation, thus increasing the discoverability and understanding of APIs.
  4. Integration and Compatibility: APIcurio can easily be integrated into existing development environments. Its support for OpenAPI specifications makes it compatible with a wide array of applications.

By integrating APIcurio into your Kubernetes cluster, you’re not only simplifying the management of APIs but also enhancing your API program’s overall efficiency and productivity. Hence, APIcurio is more than just an API registry; it’s an essential tool for optimizing your API program.

Read more