I am finding my stride profiling new APIs for APIs.io and I am settling in on the minimum viable repository structure for any API. To demonstrate what I am talking about I took HTTPStat, a simple API for generating different HTTP Status Codes that you could use in testing, tutorials, or other use cases. The repository for HTTPStat is a generated output from my API Evangelist, with the following building blocks.
- Repository - A single repository for an API.
- README - A simple README explaining API.
- APIs.jon - A machine-readable index for API.
- OpenAPI - An OpenAPI describing surface area.
- Bruno Collection - Executable Bruno collections.
- Bruno Environment - The variables and secrets.
There are other artifacts and properties I include along with each API being profiled for APis.io, but the HTTPStat API provides a simple example of how it works. Next I will add additional requests to the Bruno collection, and include links to stories and other use cases. The goal is to provide a minimal viable repository that can be forked and used by anyone, turning each API I profile into a teachable and usable moment.