at-your-service
v0.3.1
Published
A developer tool for API observability on the browser. Generate OpenAPI specifications and code from network traffic
Downloads
23
Maintainers
Readme
About the Project and Why
This tool is designed to help tackle problems that arise from a lack of awareness on API behaviour.
It records network requests under the hood using a service worker proxy. As the tool makes observations of network traffic over time, it learns the structure of the underlying API.
Features
- Spec gen: autogenerate OpenAPI 3.1 specifications from network traffic
- Code gen: convert network response bodies into code for 10+ languages including TypeScript, Python, and JSON Schema
- API Observability: explore the network layer with enhanced tooling
- Easy installation: designed to plug in and go with an existing application
Getting Started
at-your-service
features a CLI tool that places its service worker file into a directory. You likely wish to place this in public
or static
. See more information here on common locations for static files.
The service worker must be served from the root of your site. Once this is installed run the start script in your application code.
Install the npm package
npm install -D at-your-service@latest
Add service worker to your
public
,static
, or otherwise root directorynpx at-your-service@latest <directory>
Run the start script in your application
import { startAtYourService } from "at-your-service"; startAtYourService();
A button to open the drawer will be visible on your site
You can view copied OpenAPI 3.1 specifications in editor-next.swagger.io. At the time of writing, you need to manually change the version from
3.1.0
to3.0.0
after pasting the specification. Support for the new version of the specifcation is an ongoing process
How It Works
More information on the rationale, functionality, and architecture of the tool can be found here.
Contributing
A development environment exists in demo
, which when built is the landing page for the library.
If you have a suggestion that would make this better, please fork the repo and create a pull request.
Limitations
The library creates specifications that are only as accurate as the underlying observations. If your application relies on a response body that has not been observed, then type information for it will not be available.
Overall the intent is to produce a best guess that reveals API behaviour. This will never be a replacement for proper documentation.
License
Distributed under the MIT License. See LICENSE
for more information.