Akita builds models of your APIs to help you:
- Catch breaking changes on every pull request, including added/removed endpoints, added/removed fields, modified types, modified data types
- Check compliance with intended behavior
- Auto-generate up-to-date API specs
In addition to recording traffic, Akita provides:
- Path generalization for endpoints
- Type and data format inference (docs)
- Diffing across generated and uploaded API specs (docs)
- Integrations with CI (docs) and source control (GitHub; GitLab)
- Integrations with web frameworks to watch integration tests (docs)
See the full Akita docs here. Watch the first 5 minutes of this video for a demo.
Sign up for our private beta here.
About this repo | Running this repo | Plugins | Getting involved | Related links
This is the open-source repository for the community version of our CLI, containing the code for:
apidump
for listening to API traffic and generating HAR filesapispec
for generating API specs from HAR filesapidiff
for diffing API specs
The CLI is intended for use with the Akita SaaS tool: for instance, apispec
communicates with the Akita backend to generate API specs. Note that this community version of the CLI does not include functionality for type and data format inference. This functionality is available only in the akita
binary we distribute.
Running the following commands will generate the akita-cli
binary:
- Install Go 1.15 or above.
- Install
libpcap
- For Homebrew on mac:
brew install libpcap
- For Ubuntu/Debian:
apt-get install libpcap-dev
- For Homebrew on mac:
make
- Install gomock:
go get github.com/golang/mock/mockgen
make test
If it's your first use, start by logging into Akita:
> ./bin/akita login
API Key ID: apk_0000000000000000000000
API Key Secret: ******************************
Login successful!
API keys stored in ${HOME}/.akita/credentials.yaml
You're now ready to run the Akita learn
command to generate an API spec by watching traffic:
./bin/akita learn --service {service name} \
--interface {network interface} \
--port {port}
You should now see output that looks like this:
[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...
For more information, see the docs: QuickStart: Server APIs; apidump
; apispec
; learn
; apidiff
.
- Please file bugs as issue to this repository.
- We welcome contributions! If you want to make changes or build your own extensions to the CLI on top of the Akita IR, please see our CONTRIBUTING doc.
- We're always happy to answer any questions about the CLI, or about how you can contribute. Email us at
opensource [at] akitasoftware [dot] com
and/or request to join our Slack!
Using the Akita beta:
- Akita docs
- Watch a demo (first ~5 min)
- Sign up for our private beta
The Akita philosophy: