All Projects → opticdev → Optic

opticdev / Optic

Licence: mit
Optic documents and tests your API as you build it

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Optic

Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+9.34%)
Mutual labels:  swagger, openapi, documentation
Oas Kit
Convert Swagger 2.0 definitions to OpenAPI 3.0 and resolve/validate/lint
Stars: ✭ 516 (-32.11%)
Mutual labels:  swagger, openapi, documentation
Kin Openapi
OpenAPI 3.0 implementation for Go (parsing, converting, validation, and more)
Stars: ✭ 776 (+2.11%)
Mutual labels:  swagger, openapi, documentation
Openapi Codegen
OpenAPI 3.0 CodeGen plus Node.js minus the Java and emojis
Stars: ✭ 224 (-70.53%)
Mutual labels:  swagger, openapi, documentation
L5 Swagger
OpenApi or Swagger integration to Laravel
Stars: ✭ 1,781 (+134.34%)
Mutual labels:  swagger, openapi, documentation
Widdershins
OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible markdown
Stars: ✭ 856 (+12.63%)
Mutual labels:  swagger, openapi, documentation
Awesome Openapi3
😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community
Stars: ✭ 469 (-38.29%)
Mutual labels:  swagger, openapi, documentation
Swagger Combine
Combines multiple Swagger schemas into one dereferenced schema.
Stars: ✭ 102 (-86.58%)
Mutual labels:  swagger, openapi, documentation
Sway
A library that simplifies OpenAPI (fka Swagger) integrations/tooling.
Stars: ✭ 175 (-76.97%)
Mutual labels:  swagger, openapi, apis
Shins
Shins development continues at
Stars: ✭ 250 (-67.11%)
Mutual labels:  swagger, openapi, documentation
Nswag
The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
Stars: ✭ 4,825 (+534.87%)
Mutual labels:  swagger, openapi
Goa
Design-based APIs and microservices in Go
Stars: ✭ 4,493 (+491.18%)
Mutual labels:  swagger, openapi
Swag
Automatically generate RESTful API documentation with Swagger 2.0 for Go.
Stars: ✭ 5,173 (+580.66%)
Mutual labels:  swagger, openapi
Guardrail
Principled code generation from OpenAPI specifications
Stars: ✭ 396 (-47.89%)
Mutual labels:  swagger, openapi
Openapi Specification
The OpenAPI Specification Repository
Stars: ✭ 22,603 (+2874.08%)
Mutual labels:  openapi, apis
Swagger Ui
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
Stars: ✭ 21,279 (+2699.87%)
Mutual labels:  swagger, openapi
Studio
The modern editor for API Design and Technical Writing.
Stars: ✭ 459 (-39.61%)
Mutual labels:  swagger, openapi
Datamodel Code Generator
Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.
Stars: ✭ 393 (-48.29%)
Mutual labels:  swagger, openapi
Swagger Parser
Swagger Spec to Java POJOs
Stars: ✭ 468 (-38.42%)
Mutual labels:  swagger, openapi
Create Openapi Repo
🤖 Generator for GH repo to help you manage the OpenAPI definition lifecycle
Stars: ✭ 513 (-32.5%)
Mutual labels:  swagger, openapi
Optic

Optic uses real traffic to document and test your APIs

Build Status issues rust closedprs currentversion License stars

  • 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 OpticDocument APIsDetect ChangesOptic GitBotContributing 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

The api documentation

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:

Optic

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

bigdiff

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.

Install & Set up the GitBot

changelog


Documentation https://useoptic.com/docs

Resources

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


Aidan Cunniffe

📖 💻

devdoshi

📖 💻

Evan Mallory

📖

Jaap van Hardeveld

💻 📖

Ronak Shah

💻 📖

taraedits

📖

Lou Manglass

💻 📖

Nate Meyer

💻

Tim Gates

📖

Matthew Hudson

📖

LaV

📖

Gaurav Nelson

📖
🎨 💻 🐛 🤔 🖋
🤔 🖋 🔬 🤔
dnmtr

👀

Tim Perry

💻

jordaniza

📖

Sandy Vanderbleek

📖

Dave Rolsky

📖

Baptiste Darthenay

📖

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].