From OpenAPI Spec Google Spreadsheet to GitHub Jekyll-Hosted YAML
This can provide a way that non-developers can participate in the API design process and apply OpenAPI Specs to other stops along the API lifecycle.
Join the DZone community and get the full member experience.Join For Free
I have been playing around with different ways of using Google Spreadsheet to drive YAML and JSON data to Jekyll data projects hosted as Github repositories. It is an approach I started playing around with in Washington DC, while I was helping data stewards publish government services as JSON-LD. It is something I've been playing around with lately to drive D3.js visualizations and even a comic book.
There are a couple of things going on here. First, you are managing machine-readable data using Google Spreadsheets and publishing this data as two separate machine readable formats: JSON and YAML. When these formats are combined with the data capabilities of a Jekyll website hosted on GitHub Pages, it opens up some pretty interesting possibilities for using data to fuel some pretty fun things. Plus, there's no back-end needed.
To push this approach forward, I wanted to apply to managing OpenAPI Specs that can be used across the API life cycle. I pulled together a spreadsheet template for managing the details I need for an OpenAPI Spec. Then, I created a GitHub repository, forked my previous spreadsheet to YAML project, and modified it to pull data from a couple of worksheets in the Google Doc and publish as both JSON and YAML OpenAPI Spec.
My OpenAPI Spec Google Sheet to YAML for use in a Jekyll project hosted on GitHub is just a prototype. The results don't always validate and I'm playing with different ways to represent and manage the data in the Google Sheet. It is a fun start, though! I am going to keep working on it and probably start a similar project for managing an APIs.json index using Google Sheets. When done right, it might provide another way that non-developers can participate in the API design process and apply OpenAPI Specs to other stops along the API lifecycle like with API documentation, SDK generation, or testing and monitoring.
Published at DZone with permission of Kin Lane, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.