Shameless plug, I did something similar in Rust (that is, 2017 rust that I haven't gone back to) for my MEng project.<p>I really wish more APIs/people used OpenAPI, I think/thought it's fantastic, but I haven't really used it since. Docs-only at work, a bit, but it has so much more potential.<p>--<p>Main difference in mine is that I used the OpenAPI spec as the starting point though - I wanted to be able to use it as an API-specific HTTP client. From that I inferred type signatures at compile-time in order to enforce correct (per the spec) use of an API, and enforce handling all the (stated) possible error cases. Idea being that if you did the same on the server side, you'd have pretty good guarantees about your communication.<p>Kept meaning (still mean?) to go back to it, but I haven't yet. It supports the basics, but it's far from battle-tested; I might never get back to working on it, but if it's of interest to anyone for (absolutely non-production) toying around, I'll certainly respond and act on any PRs.<p><a href="https://github.com/OJFord/tapioca" rel="nofollow">https://github.com/OJFord/tapioca</a><p>It seems they're not linked from the readme (probably I was scared to update it post-deadline in case of examiner doubt, and presentation/slide manufacture was post-submission deadline) but there's also slides (linked from the release) that perhaps have a bit more detail on what I was going for from a more technical perspective (though it's been a while):<p><a href="https://github.com/OJFord/tapioca/releases/download/v0.0.1/slides.pdf" rel="nofollow">https://github.com/OJFord/tapioca/releases/download/v0.0.1/s...</a>