Our great sponsors
-
openapi-generator
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Hey Hackers,
My name is Dylan and I wanted to share with you my product Konfig (https://konfigthis.com) - a framework and toolset to help generate SDKs for your REST API. Today we use it to generate SDKs for our customers.
Large API companies like Stripe and Plaid have amazing developer experiences in part due to their client SDKs. But most API companies do not have the bandwidth or expertise to create and maintain SDKs. With Konfig, we want to make publishing SDKs easy without compromising quality. There are great open source projects like OpenAPI Generator (https://openapi-generator.tech) that exist, but generating SDKs is still hard for two reasons.
First, it is difficult to write your OpenAPI Specification in a way that generates high quality SDKs since there are no standard best practices. And the ecosystem for generating OAS from code is immature (besides FastAPI / Swagger). So we built a linter that integrates with VSCode and a CLI that can automatically fix your OAS to quickly improve your OAS.
Second, maintaining SDKs is a pain since you have to continuously rerun the generators, test the output, properly update versions, and publish to package managers. Konfig defines a convention for organizing your SDKs and automates the linting, generation, testing, versioning (thanks to https://www.useoptic.com), and publishing of your SDKs upon changes to your OAS.
I have experience working on similar projects - before building Konfig, I spent 3 years building a DSL for implementing highly relational and big data systems at C3.ai. The DSL was used to generate millions of lines of Java to serve thousands of APIs. We created client SDKs in JavaScript, Python, and Java but it became a such a huge pain to ensure the consistency and correctness across SDKs that we created a language-agnostic framework for generating tests (we called it Polytest).
A few companies are using Konfig and we are currently looking for more API companies interested in publishing SDKs for their API. I would also love to just hear your experience providing SDKs for your API and thoughts on the API specification ecosystem as a whole. Today Konfig is not well documented and we currently operate our product on behalf of our customers but hope to improve the documentation and developer experience. But feel free to use our Spectral based linter to determine if your OAS is in good shape for SDK generation https://docs.konfigthis.com/tutorials/setup-linting.
We have some pretty cool ideas in the pipeline such as:
- building a generator with a better intermediate representation (IR) and templates to support ergonomic SDK features such as parameter state tracking and pagination
Related posts
- OpenAPI Generator v7.3.0 has new generators for Rust, Kotlin, Scala and Java
- Stop creating HTTP clients manually - Part I
- Building a world-class suite of SDKs is easy with Speakeasy
- Sharing EF data access project DLL vs NuGet vs ?
- OpenAPI Generator v7.0.1 released with some enhancements in the PowerShell client generator