The Next-generation API Observability Platform

How do you know if a small code change can take down your site? What's really going on with your APIs? At Akita, we're building tools to help you answer that question.

Akita watches calls to web APIs in order to help you visualize your service graph, monitor your APIs, make sense of your request/response logs, and 💥 catch breaking changes 💥.

By passively watching traffic, Akita integrates in a low-friction, low-risk way, making it possible to run in CI/CD, staging, or production without too much overhead. Akita's API modeling technology to automatically catch breaking changes.

Get Started    FAQs

Extend API Models

Learning an API spec just got even easier!

Extend Mode lets you choose an existing API Specification as the starting point for a new learn session. This allows you to learn new API endpoints or make modifications without learning the entire API from scratch.

Before we get started

If you haven't already, we recommend completing the Get Started with SuperLearn to learn the SuperLearn basics. We will use many of the same tools and concepts in this tutorial. Then come back here, and we'll show you how to extend an API Specification.

Getting Started

Now we'll show you how to use Akita SuperLearn to:

Mark an API Specification as Stable

Before you can start using Extend Mode, you will need to mark an API Specification as "stable." When you start SuperLearn in Extend Mode, it will use stable API Specification as its base.

You can mark API Specifications as 'STABLE' by navigating to a Service in the Akita Console. There you will find a list of all the API Specifications generated for that service.

You can mark an API Specification as 'stable' by clicking the 'Mark Stable' button.

After the API Specification has been marked as stable the 'STABLE' label will appear in the version column.

Run SuperLearn in Extend Mode

Now that we have a stable API Specification we can start extending it with additional learning. All you need to do is start the Akita Client and exercise the additional API endpoints. You can check out the spec as you go, or all at once in the end.

Starting SuperLearn

To start SuperLearn, Akita needs to know what network traffic to monitoring and which service to associate the monitored traffic with:

  • Service Name - the name of the Service we created in the Akita Cloud.
  • Network Interface - the network interface your Service is sending and receiving data on.
  • Port - the port your service is listening for a connection on.

If you are running in Docker we will also need your API Key ID, API Key Secret, and the Network your container is attached to.

With this information, you can start SuperLearn by running the command below. Be sure to include the --extend argument to run in Extend Mode. If you do not include --extend SuperLearn will create a new API Specification from scratch.

akita learn --service {service name} \
    --interface {network interface} \
    --port {port} \
    --extend stable
sudo akita learn --service {service name} \
    --interface {network interface} \
    --port {port} \
    --extend stable
docker pull akitasoftware/cli:<<current_cli_version>> && docker run --rm -it \
  --env AKITA_API_KEY_ID=${KEY_ID} \
  --env AKITA_API_KEY_SECRET=${KEY_SECRET} \
  --net={network} akitasoftware/cli:<<current_cli_version>> learn \
  --service {service name} \
  --port {port} \
  --extend stable

📘

What is my network interface?

If you are using macOS or Linux you can use the command below to find your network interface. Simply provide the IP address that you are using to make requests to your API Service.

netstat -nr -f inet | grep "{IP Address}" | head -n1 | awk '{print $4}'

Exercise the API

Once SuperLearn is running, start making requests to your API. The Akita Client watches each request and sends a scrubbed version back to the Akita Cloud for learning your spec. You can get a sneak peek at the preview link as you go. 👀

[INFO] Running learn mode on interface lo0
[INFO] Preview the learned API spec at https://app.akita.software/service/svc_4UxRRNmhL8R2MAqrmCmCvn/spec-preview/lrn_40lxi9tlHnfdiRsBzXYbBY
[INFO] Send SIGINT (Ctrl-C) to stop...

Stopping SuperLearn

^C
[INFO] Received SIGINT, generating API specification...
[INFO] Opening https://app.akita.software/service/svc_4UxRRNmhL8R2MAqrmCmCvn/spec/api_1XStTp197RbGt6N2svEh25 in the browser...

🎉 You Did It!

You have successfully extended your API. Now you can use the Akita Console to review and download your brand new API Specification!

Updated 2 months ago


Extend API Models


Learning an API spec just got even easier!

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.