All Projects → OAIE → oaie-sketch

OAIE / oaie-sketch

Licence: MIT license
OpenAPI Visual Editor

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to oaie-sketch

openapi-schema-validator
OpenAPI schema validator for Python
Stars: ✭ 35 (-35.19%)
Mutual labels:  openapi, openapi3, oas3
nexmo-oas-renderer
Render your API references, Nexmo-style!
Stars: ✭ 40 (-25.93%)
Mutual labels:  openapi, openapi3, oas3
Spot
Spot is a concise, developer-friendly way to describe your API contract.
Stars: ✭ 230 (+325.93%)
Mutual labels:  openapi, openapi3
Swagger Node Codegen
An OpenAPI 3.x/Swagger 2 code generator for Node.js
Stars: ✭ 189 (+250%)
Mutual labels:  openapi, openapi3
Openapi Directory
🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format
Stars: ✭ 2,635 (+4779.63%)
Mutual labels:  openapi, openapi3
Openapi Psr7 Validator
It validates PSR-7 messages (HTTP request/response) against OpenAPI specifications
Stars: ✭ 168 (+211.11%)
Mutual labels:  openapi, openapi3
Routing Controllers Openapi
Runtime OpenAPI v3 schema generation for routing-controllers.
Stars: ✭ 170 (+214.81%)
Mutual labels:  openapi, openapi3
Swaggerprovider
F# generative Type Provider for Swagger
Stars: ✭ 201 (+272.22%)
Mutual labels:  openapi, openapi3
Prance
Resolving Swagger/OpenAPI 2.0 and 3.0 Parser
Stars: ✭ 133 (+146.3%)
Mutual labels:  openapi, openapi3
OpenAPI
A pharo implementation of OpenAPI 3.0.1
Stars: ✭ 20 (-62.96%)
Mutual labels:  openapi, openapi3
Openapi Diff
Utility for comparing two OpenAPI specifications.
Stars: ✭ 208 (+285.19%)
Mutual labels:  openapi, openapi3
Full Stack Fastapi Couchbase
Full stack, modern web application generator. Using FastAPI, Couchbase as database, Docker, automatic HTTPS and more.
Stars: ✭ 243 (+350%)
Mutual labels:  openapi, openapi3
Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+6285.19%)
Mutual labels:  openapi, openapi3
Openapi Spec Validator
OpenAPI Spec validator
Stars: ✭ 161 (+198.15%)
Mutual labels:  openapi, openapi3
oas parser
An open source Open API Spec 3 Definition Parser
Stars: ✭ 52 (-3.7%)
Mutual labels:  openapi3, oas3
Prism
Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.
Stars: ✭ 2,484 (+4500%)
Mutual labels:  openapi, openapi3
Openapi Mock
OpenAPI mock server with random data generation
Stars: ✭ 202 (+274.07%)
Mutual labels:  openapi, openapi3
Openapi Codegen
OpenAPI 3.0 CodeGen plus Node.js minus the Java and emojis
Stars: ✭ 224 (+314.81%)
Mutual labels:  openapi, openapi3
Restful React
A consistent, declarative way of interacting with RESTful backends, featuring code-generation from Swagger and OpenAPI specs 🔥
Stars: ✭ 1,814 (+3259.26%)
Mutual labels:  openapi, openapi3
Rapipdf
PDF generation from OpenAPI / Swagger Spec
Stars: ✭ 132 (+144.44%)
Mutual labels:  openapi, openapi3

OAIE Sketch

OAIE Sketch is a browser-based editor for OAS3 spec documents. It offers a side-by-side YAML code editor and visual editor with a focus on tactile feedback, simplicity and performance. Its philosophy is "stay close to the code and visualize".

Online Demo: https://raw.githack.com/OAIE/oaie-sketch/master/sketch.html

Installation

Currently OAIE Sketch is only a few files plus CDN links. So your process to get it running is manual.

  • clone repository
  • open sketch.html in browser

Features

  • shows each operation as graph node (path, operationId, summary, parameters)
  • shows each schema as graph node (name, description, properties)
  • shows each relation as graph arrow (array-relations as dotted)
  • dragging for graph nodes
  • mass-move to make space for new content (up/down arrows in operation)
  • quick action buttons for adding properties and schemas
  • clicking schemas or properties will scroll the document
  • detects changes and colors sync buttons
  • can add a "baked" viz into the document as a viewer storage
  • uses viz as metadata (node position) storage
  • sync graph into yaml, sync yaml into graph
  • auto-save in localstorage of browser

oaie-sketch-2.png

Opinionated OAS3 YAML

Requests, Responses and sub-objects should be their own schema definitions. Note that this is best practice anyway if you ever want to generate classes from your spec.

components:
  schemas:
    CapabilitiesRequest:
      required:
        - spec
      properties:
        spec:
          $ref: '#/components/schemas/Spec'
    CapabilitiesResponse:
      properties:
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/Capability'
    Capability:
      properties:
        method:
          type: string
        skuPattern:
          type: string
    Spec:
      description: OAIE.noInArrows
      properties:
        id:
          type: string
        schedules:
          type: array
          items:
            $ref: '#/components/schemas/Schedule'
    Schedule:
      properties:
        method:
          type: string
        expression:
          type: string

VIZ

Beginning documents like this will add a viz (visualisation) into the header (this will show up as a graphic in swagger):

openapi: "3.0.0"
info:
  version: "0.0.1"
  title: My Service
  description: |
    My introductory information
    <!--OAIE.viz--><!--/OAIE.viz-->
...

Sketch persists graph node positions to the browser's localStorage, but when a viz is present, it will store and load graph node positions to and from this viz (inside the <!--OAIE.viz--> tag).

Caveats

  • Currently only tested on Chrome.
  • OAIE Sketch has an opinion about correct document structure: each schema should be declared as a named schema.
  • local storage is used as persistence. this means that currently it is only feasible to edit one spec at a time (much like the Swagger online editor).
  • OAIE Sketch is in a very early stage, please backup your documents frequently outside of it!
  • Sync: when both are yellow, first click "<- update inline viz", then "update from editor ->"

TODO

  • documentation
  • find contributors
  • marketing
  • see Projects tab for planned features

Contributing

  • We want to maintain a focus on the code.
  • We want to facilitate writing better specs.
  • We want to make writing specs easier and give an easier learning curve.
  • We want to be as lightweight as possible (currently needs Vue, JS-YAML, jQuery, jQuery UI - help on removing jQuery appreciated!).
  • We want to keep the dependency to libraries as low as possible.
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].