OpenAPI provides a human/machine-readable format for describing APIs. Having standards is great, but OpenAPI has proven itself hard to use correctly, and maintaining a 10k line YAML file isn't very developer-friendly.
Optic aims to provide the same value as OpenAPI -- a human/machine-readable description of an API, but with an emphasis on making the tooling easy-to-use and developer-friendly. You can read more about how we do that here.
Optic creates a folder called
.optic in your repo and we encourage you to check that into Git. The development and testing proxies run locally or in your infrastructure and never sends data back to us over the network.
Optic can import OpenAPI 2 & 3 reasonably well and can export OpenAPI 3. Once teams add Optic, most stop manually writing the OpenAPI file manually.
JSON + text bodies are the only type supported right now
Advanced support for Links, JSON API and Hypermedia controls has not been implemented
We currently only support describing one content-type per body.
Map types are not supported
Tuples are not supported
No support for GraphQL
No support for gRPC
If one of these or something else you find is a blocker, open an issue https://github.com/opticdev/optic/issues. We will do our best to get it implemented quickly. For those that purchase a license for the Team Edition.
Optic sells a Team Edition with features that help larger organizations with API Lifecycle Management and their Governance initiatives. We are backed by YCombinator and have raised a seed round. Today Optic is fully open source and will always offer a free version for the community.
Optic 7 API specifications are fully compatible with Optic <6 specifications, but the folder structure has been changed.
The first thing you need to do is copy
.api/spec-store.json to another folder.
Then delete your
.api folder and
Install Optic 7 and run the new
api init command. Full instructions here
After Optic has been setup, copy the spec store into the
.optic/api folder and overwrite the empty
We have docs for that too! Please read the How To Contribute Guide