{"repo":"disruptek/openapi","free":true,"listed":false,"github":"https://github.com/disruptek/openapi","clone":"git clone https://github.com/disruptek/openapi.git","description":"OpenAPI Code Generator for Nim","language":"Nim","stars":71,"topics":["nim","api","json","yaml","openapi","client","http","rest"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"openapi Example Both OpenAPI 2.0 (Swagger) and OpenAPI 3.x specs are supported. The input must be JSON; convert YAML first: You can render the API every time you build you project, or you can build it via a separate source input. Either way, it looks the same: Theory Why output Nim source at all? 1. Parsing the API schema and generating the code isn't terribly fast when performed at compile-time, so saving the source allows us to cache that work product to dramatically speed up compilation of an application which actually uses the resultant API and is likely being recompiled more often than the API schema is changing. 1. Eventually, this library will, by default, generate an API which has no third-party module requirements. We aren't quite there yet, simply because we provide some minor quality-of-life shimming of the HTTP client. 1. Without source text, many forms of tooling (documentation, editor plug-ins, etc.) have needless hoops to jump through, if they work at all. 1. Adding generated code to source control lets us keep track of changes there which are no less critical than changes we might otherwise introduce manually elsewhere. Why is the resultant API so noisy? The quality of OpenAPI definitions in the wild appears to vary, uh, wildly. This code attempts to progressively define greater support for the API it receives as input whenever possible. Hindrances to this goal include name clashes, invalid $ref erences, unspecified types, invalid identifiers, ambiguous schema","default_branch":null,"files":null,"tree":[],"storefront":"/r/disruptek","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/disruptek/openapi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}