Optic alternatives and similar libraries
Based on the "API" category.
Alternatively, view Optic alternatives based on common mentions on social networks and blogs.
-
React Query
Hooks for fetching, caching and updating asynchronous data in React. -
Swagger Client
Swagger Client is a JavaScript module that allows you to fetch, resolve, and interact with Swagger/OpenAPI documents. -
SapphireDb
SapphireDb, a self-hosted, easy to use realtime database for Asp.Net Core and EF Core -
oauth-signature-js
JavaScript OAuth 1.0a signature generator for node and the browser. -
FarFetch
Modern Fetch API wrapper for simplicity, with concise file uploading. -
Bearer API Client for JavaScript
Bearer provides all of the tools to build, run and manage API integrations. -
Bearer.sh
Universal API client that supports OAuth / API Key / Basic / etc. -
Angular Chat App Example
Build a simple group chat application with Angular 7 from scratch -
GazeRecorder
GazeRecorder | Behavior Analytics Made Easy | Website Eye-Tracking Heatmaps
Scout APM - Leading-edge performance monitoring starting at $39/month
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Optic or a related project?
README
Optic uses real traffic to document and test your APIs
- Language agnostic, works with any Rest API
- Optic observes development traffic and learns your API's behavior
- Optic detects API changes by diffing traffic against the current specification
- Optic adds an accurate API changelog to every Pull Request
Try Optic • Document APIs • Detect Changes • Optic GitBot • Contributing License
Click here for a Live Demo
Try Optic
Similar to
git init
Install Optic with npm or yarn"
yarn global add @useoptic/cli
npm install @useoptic/cli -g
Then run init command:
## Navigate to your API project directory
api init
Set up aliases for the commands your team runs when building the API in optic.yml
ie npm start
-> api start
ie newman run mycollection.json
-> api run postman-tests
name: My API
tasks:
start:
command: npm start
inboundUrl: http://localhost:4000
postman-tests:
command: newman run mycollection.json
usesTask: http://localhost:4000
How does Optic monitor local traffic? Whenever you start your API or run tests using Optic's CLI, it will observe your traffic and surface API diffs. All of this processing is done locally, in the background, by a Rust binary built from the open source code in this repository.
Document your API using real traffic
Similar to
git add
Once you add Optic to your API, hit it with some traffic, and document your first endpoints.
You just have to provide Optic with your API paths, and it will document every status code, response body, and request body automatically based on its observations.
You don't have to worry about hitting every possible request/response your first go -- Optic isn't "one-shot", it builds your spec up incrementally as it makes more observations about your API's behavior. For example, if Optic sees a 200
for an endpoint, and later sees a 400
for the same endpoint, it will help you add the new response.
api start
[optic] Starting My API API on Port: 3005, with npm run server-start
- Document your API with Optic
- Video: Quinn Slack from Sourcegraph documenting GitHub's API in 10 minutes
Detect API Changes
Similar to
git status
While you develop your API and run tests locally, Optic diffs the traffic to find new endpoints, or changes to existing endpoints. These API diffs are listed when you run api status
:
Use the Optic UI to Review Diffs + Update your Specification
Similar to staging changes
When Optic detects an API diff, it helps you:
- Document new endpoints without writing a bunch of OpenAPI
- Update your API specification with a few clicks
- Detect any unplanned changes, breaks and regressions, then fix them
An API Changelog in Every PR
Similar to GitHub's compare page, but for API changes
The Optic GitBot adds an API Changelog during Code Review, so your team understands how the API will change when each PR is merged.
🚦 Prevent Breaking Changes
Discover breaking changes before they're merged. Request compatible changes in code review, or coordinate the breaking changes with consumers.
🔎 API First
Adding explicit API changelogs in PRs facilitates discussion and leads to better API design. It's also a great way to make sure unintended API changes don't get deployed.
✅ Updated Docs
No more doc drift. When you approve an API change Optic also updates the specification.
Documentation https://useoptic.com/docs
- Read the full docs at: useoptic.com/docs.
- Want to contribute? Check out the [Contribution Guidelines](Contributing.md).
- To get set up working on the project, please review our [Developer Setup](Developer-setup.md) guide as well.
Resources
- Read our about Aidan + Dev's vision for the space Read: Git for APIs
- Listen to Optic on Software Engineering Daily
Read API Evangelist on Optic Automatically Generate OpenAPI For Your APIs Just By Using Them
Want to help us design the next features? Book Maintainer Office Hours
License
MIT
Contributors ✨
Thanks goes to these wonderful people (emoji key):
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<!-- ALL-CONTRIBUTORS-BADGE:END -->
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
Aidan Cunniffe📖 💻
devdoshi📖 💻
Evan Mallory📖
Jaap van Hardeveld💻 📖
Ronak Shah💻 📖
taraedits📖
Lou Manglass💻 📖
Nate Meyer💻
Tim Gates📖
Matthew Hudson📖
LaV📖
Gaurav Nelson📖
Ross Nordstrom🎨 💻 🐛
Kin Lane🤔 🖋
Viljami Kuosmanen🤔 🖋
Richard Crowley🔬 🤔
dnmtr👀
Tim Perry💻
jordaniza📖
Sandy Vanderbleek📖
Dave Rolsky📖
Baptiste Darthenay📖
Alex Miller📖
Joseph Shearer💻
Ray Bejjani📖
<!-- markdownlint-restore --> <!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the all-contributors specification. Contributions of any kind welcome!
*Note that all licence references and agreements mentioned in the Optic README section above
are relevant to that project's source code only.