Skip to main content

Changelog #1 - STATISTICS.md, Interactive Tutorial, and TypeScript Error

· 3 min read

At Konfig, we are rapidly making progress towards building the easiest way to onboard developers to your API. To keep our followers up-to-date, we are starting this newsletter that will feature 2-3 of our biggest product updates and little fixes.

STATISTICS.md

Now konfig generate will generate a file named STATISTICS.md that contains a count for Lines of Code in each SDK for your API. Here is an example that we generated. This file is generated in the same directory as your konfig.yaml file. In the future, we would also like to add more data such as weekly downloads.

STATISTICS.md

_11
# SDK Statistics
_11
_11
| SDK Name | Lines of Code |
_11
|------------|---------------|
_11
| java | 89900 |
_11
| ruby | 47516 |
_11
| python | 104319 |
_11
| typescript | 18063 |
_11
| csharp | 58322 |
_11
| php | 99705 |
_11
| **Total** | 417825 |

Interactive Tutorial

Our interactive tutorial is now live! Learn how to generate SDKs with a guided interface. This is a great way to get started with Konfig if you would like to generate SDKs yourself.

Interactive Tutorial

Improved TypeScript SDK Error

Instead of just throwing the error from the underlying request library, axios, we now generate a file called error.ts that contains a custom Error class. The name of the class is based off the client name in your konfig.yaml file. The new custom error message has a cleaner interface and better inline documentation. In a Next.js API environment, the logged errors now exclude a lot of the garbage that was not helpful when debugging.

error.ts

_36
/**
_36
* This class provides a wrapper for network errors when making requests to OpenAPI Petstore
_36
*/
_36
export class AcmeError extends Error {
_36
/**
_36
* The response body
_36
*/
_36
readonly responseBody: unknown;
_36
_36
/**
_36
* The error code provided from the underlying "axios" library which can be
_36
* more descriptive than the HTTP status descriptions.
_36
*/
_36
readonly code?: string;
_36
_36
/**
_36
* The status code from the response.
_36
* For explanations, refer to https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
_36
*/
_36
readonly status?: number;
_36
_36
/**
_36
* The status text from the response.
_36
* For explanations, refer to https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
_36
*/
_36
readonly statusText?: string;
_36
_36
/**
_36
* The URL that the original request was sent to
_36
*/
_36
readonly url?: string;
_36
_36
/**
_36
* HTTP request method (see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)
_36
*/
_36
readonly method?: string;

Improvements and Fixes
  • Support for GitLab publishing in Java SDK
  • Streaming support in TypeScript SDK for Node.js environments
  • Improved class hierarchy in TypeScript SDK to allow for custom classes to call generated methods
  • Improved class hierarchy in Java SDK to allow for custom classes to call generated methods
  • Fixed bug in Python SDK when circular dependency was present in OpenAPI spec