Hi HN,<p>We are excited to share Konfig SDKs, a collection of SDKs for public APIs that help you write and maintain less API integration code. These SDKs provide convenient types and interfaces for making API calls so you never have to read the details of how to construct your HTTP requests or what data types to pass.<p>With SDKs you can:<p>- reduce lines of API integration code by ~25%<p>- instantiate ~30% less variables<p>- develop API integrations 2x faster<p>Here are some links to explore:<p>- A blog post explaining the details of why we and how we built it: <a href="https://konfigthis.com/blog/introducing-konfig-sdks/" rel="nofollow">https://konfigthis.com/blog/introducing-konfig-sdks/</a><p>- Directory of SDKs: <a href="https://konfigthis.com/sdk/category/all/" rel="nofollow">https://konfigthis.com/sdk/category/all/</a><p>For context, we are developer experience enthusiasts and know the pain of searching for an up-to-date SDK for an API, only to find abandoned projects or poorly documented libraries. If you are lucky, some hero developer has published a high-quality SDK, only to eventually fall out-of-date over time, as unpaid work can only last so long.<p>To generate all the SDKs, we created the highest-quality collection of OpenAPI specifications (<a href="https://spec.openapis.org/oas/latest.html" rel="nofollow">https://spec.openapis.org/oas/latest.html</a>) on the internet: <a href="https://github.com/konfig-sdks/openapi-examples">https://github.com/konfig-sdks/openapi-examples</a> (it's open and MIT licensed). It contains metadata about the API provider, media assets, response time logs, and the specification itself.<p>Every specification is modified to ensure that we can create high-quality SDKs. For example, we use LLMs to generate method names for every operation so that the generated SDKs feel natural to use. We then continuously use this dataset to generate SDKs using a generator we have developed over the past 16 months.<p>I’m excited to know if you have any thoughts or feedback! We also created a Discord server you can join here: <a href="https://discord.gg/BAUS4Xtb" rel="nofollow">https://discord.gg/BAUS4Xtb</a>.
Congratulations on launching, you have some interesting ideas in there.<p>Using a LLM to generate missing operation ids isn't something I've tried, instead I simply combine http method plus path segments which at least guarantees uniqueness [1]. I do a similar thing for extracting and naming inline schemas based on the operation and media types [2].<p>How do you prevent naming collisions? And do you find the resulting names to be significantly better than a deterministic approached like I described?<p>I'll definitely checkout the curated specifications - always useful to get more high quality (and hopefully varied) specifications to test my code generator with, and the lint rules is a great idea - I've had to explain what patterns lend themselves well to code generation many times.<p>I'm on mobile so may have missed it, but looking at one of your typescript examples I couldn't see any runtime response body validation, is this something you're thinking about?<p>- [1] <a href="https://github.com/mnahkies/openapi-code-generator/blob/main/packages%2Fopenapi-code-generator%2Fsrc%2Fcore%2Finput.ts#L248-L258">https://github.com/mnahkies/openapi-code-generator/blob/main...</a><p>- [2] <a href="https://github.com/mnahkies/openapi-code-generator/pull/123">https://github.com/mnahkies/openapi-code-generator/pull/123</a>