A fluent interface plus reflection allows one to nearly auto-generate swagger documents. For an example, check out Swashbuckler for ASP.Net/ASP.Net Core. It's very easy to configure and extend, and you can easily write in-line documentation for JSON APIs.