{"id":13565112,"url":"https://github.com/OAIE/oaie-sketch","last_synced_at":"2025-04-03T22:30:44.158Z","repository":{"id":49991718,"uuid":"251551520","full_name":"OAIE/oaie-sketch","owner":"OAIE","description":"OpenAPI Visual Editor","archived":false,"fork":false,"pushed_at":"2021-06-06T22:42:06.000Z","size":567,"stargazers_count":66,"open_issues_count":3,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-08T20:17:40.571Z","etag":null,"topics":["browser","oas3","openapi","openapi3","swagger","visualeditor","yaml"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OAIE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-31T09:03:18.000Z","updated_at":"2025-03-03T09:59:21.000Z","dependencies_parsed_at":"2022-09-10T00:32:16.571Z","dependency_job_id":null,"html_url":"https://github.com/OAIE/oaie-sketch","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OAIE%2Foaie-sketch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OAIE%2Foaie-sketch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OAIE%2Foaie-sketch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OAIE%2Foaie-sketch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OAIE","download_url":"https://codeload.github.com/OAIE/oaie-sketch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247089778,"owners_count":20881841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","oas3","openapi","openapi3","swagger","visualeditor","yaml"],"created_at":"2024-08-01T13:01:40.961Z","updated_at":"2025-04-03T22:30:39.147Z","avatar_url":"https://github.com/OAIE.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# OAIE Sketch\nOAIE 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\".\n\nOnline Demo: https://raw.githack.com/OAIE/oaie-sketch/master/sketch.html\n\n## Installation\nCurrently OAIE Sketch is only a few files plus CDN links. So your process to get it running is manual.\n- clone repository\n- open sketch.html in browser\n\n## Features\n- shows each operation as graph node (path, operationId, summary, parameters)\n- shows each schema as graph node (name, description, properties)\n- shows each relation as graph arrow (array-relations as dotted)\n- dragging for graph nodes\n- mass-move to make space for new content (up/down arrows in operation)\n- quick action buttons for adding properties and schemas\n- clicking schemas or properties will scroll the document\n- detects changes and colors sync buttons\n- can add a \"baked\" viz into the document as a viewer storage\n- uses viz as metadata (node position) storage\n- sync graph into yaml, sync yaml into graph\n- auto-save in localstorage of browser\n\n![oaie-sketch-2.png](oaie-sketch-2.png)\n\n## Opinionated OAS3 YAML\nRequests, 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.\n\n    components:\n      schemas:\n        CapabilitiesRequest:\n          required:\n            - spec\n          properties:\n            spec:\n              $ref: '#/components/schemas/Spec'\n        CapabilitiesResponse:\n          properties:\n            capabilities:\n              type: array\n              items:\n                $ref: '#/components/schemas/Capability'\n        Capability:\n          properties:\n            method:\n              type: string\n            skuPattern:\n              type: string\n        Spec:\n          description: OAIE.noInArrows\n          properties:\n            id:\n              type: string\n            schedules:\n              type: array\n              items:\n                $ref: '#/components/schemas/Schedule'\n        Schedule:\n          properties:\n            method:\n              type: string\n            expression:\n              type: string\n\n## VIZ\nBeginning documents like this will add a viz (visualisation) into the header (this will show up as a graphic in swagger):\n\n    openapi: \"3.0.0\"\n    info:\n      version: \"0.0.1\"\n      title: My Service\n      description: |\n        My introductory information\n        \u003c!--OAIE.viz--\u003e\u003c!--/OAIE.viz--\u003e\n    ...\n\nSketch 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 \u0026lt;!--OAIE.viz--\u0026gt; tag).\n\n## Caveats\n- Currently only tested on Chrome.\n- OAIE Sketch has an opinion about correct document structure: each schema should be declared as a named schema.\n- 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).\n- OAIE Sketch is in a very early stage, please backup your documents frequently outside of it!\n- Sync: when both are yellow, first click \"\u003c- update inline viz\", then \"update from editor -\u003e\"\n\n## TODO\n- documentation\n- find contributors\n- marketing\n- see Projects tab for planned features\n\n## Contributing\n- We want to maintain a focus on the code.\n- We want to facilitate writing better specs.\n- We want to make writing specs easier and give an easier learning curve.\n- We want to be as lightweight as possible (currently needs Vue, JS-YAML, jQuery, jQuery UI - help on removing jQuery appreciated!).\n- We want to keep the dependency to libraries as low as possible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOAIE%2Foaie-sketch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOAIE%2Foaie-sketch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOAIE%2Foaie-sketch/lists"}