Skip to main content

15 posts tagged with "Konfig"

View All Tags

· 4 min read

Banner

Exciting news for developers! We're thrilled to introduce Konfig SDKs, a collection of SDKs designed to streamline and enhance your software development process. Konfig SDKs will transform how you integrate external APIs, making your development faster, your code cleaner, and your integrations more robust.

Why?

Developers often struggle with the challenges of integrating multiple external APIs. The inconsistencies in documentation, the need for continuous updates, and the tedious task of translating these documents into usable SDKs consume valuable time and resources.

With Konfig, you let us do the tedious work of parsing and translating to SDKs, so you can focus on core business logic.

Features and Benefits

  • Faster Integration with Less Code: Konfig SDKs allow you to integrate APIs swiftly, erasing the need to write boilerplate code.
  • Always Up-to-Date: Stay ahead with SDKs that are automatically updated in alignment with API changes.
  • Change Notifications: Receive alerts when an API you depend on undergoes changes, ensuring your projects stay up-to-date.
  • Unmatched Efficiency: Build software at an accelerated pace, maintain less code, and expand your app's capabilities with more external integrations.

How does it work?

konfig-sdk-how-it-works

  1. We maintain the highest quality collection of OpenAPI Specifications on the internet. This collection is open and MIT-licensed so you can use it freely.
  2. Generate AI-Augmented SDKs from the OpenAPI Specifications in TypeScript, Python, Java, C#, PHP, Ruby, Go, Swift, and Dart. AI helps us ensure that the SDKs feel natural to use and are well-documented.
  3. Distribute the SDKs to you through standard package managers

Finally, whenever an SDK is updated, we will notify you.

By signing up, you will receive an access token that grants you access to our SDKs. You can then use the SDKs to integrate the APIs you need into your projects. Then you can add SDKs to your project using your favorite package manager:

CLI

_10
pnpm install @konfig/{API}

Konfig SDKs vs. Universal API Solutions

Konfig SDKs offer two key advantages over universal API solutions: security and comprehensiveness.

Security

Universal API solutions introduce potential security concerns for data-sensitive applications. By adding a universal API layer to your infrastructure, you introduce a potential security risk to your data by passing sensitive information through the provider's infrastructure, possibly leaking information in-transit. Konfig SDKs, on the other hand, ensure your data remains secure and private by connecting you directly to the API provider's infrastructure.

Comprehensiveness

We offer connections to more APIs than universal API solutions. Moreover, we do not prescribe a common data model for all APIs, ensuring you have full access to all of the API's capabilities.

Selection
Checkout our selection of SDKs

Use Cases

Konfig SDKs can be used in a variety of scenarios. Here are a few examples:

  1. E-commerce Integration: Use Konfig SDKs to integrate with e-commerce platforms and streamline your sales process.
  2. Financial Services: Integrate with financial services APIs to manage transactions and accounts.
  3. Human Resources: Integrate with human resources APIs to manage employee data and schedules.
  4. Sales: Integrate with sales platforms to manage sales, orders, and customer data.
  5. Productivity: Use AI to enhance your productivity in your current productivity tools. Integrate with productivity platforms to manage tasks, projects, and documents.

The Future

At the core of Konfig SDKs is our extensive experience in generating SDKs for REST APIs from OpenAPI specifications. We understand the developer's plight and have crafted Konfig SDKs to alleviate these challenges.

We plan to add more APIs to openapi-examples and further refine Konfig SDKs, ensuring you write and maintain less code.

Don't miss out on the opportunity to transform your development workflow. Sign up below to be among the first to leverage the power of Konfig SDKs.

Start building faster with Konfig SDKs

If you have a request for an SDK for a particular API, please reach out at [email protected] or join our Discord server.

· 3 min read

banner

In this changelog, we're excited to announce the release of the revamped Ruby, PHP, and Swift SDKs. We've also made a change to the TypeScript SDKs to use pnpm instead of yarn or npm. This change has improved the reliability and performance of our TypeScript SDKs.

Furthermore, we've made several improvements and fixes to the Konfig's SDKs. These include various bug fixes, better documentation, security vulnerability fixes, and more rigorous testing for PHP, Python, Ruby, Go, TypeScript, and Swift SDKs.

Revamped Ruby, PHP, and Swift SDKs

Revamped SDKs

We revamped the Ruby, PHP, and Swift SDKs to be more consistent with the quality of our Python and TypeScript SDKs. This includes:

  • Improved code quality
  • Better test coverage
  • Better documentation

In particular, we removed the array of .md files that were generated as documentation and replaced it with the singular README.md file that includes everything you need to know about the SDK. Putting everything on one page makes it easier to navigate and find what you need.

Improved README

README.md now includes a branded header, getting started instructions, and a reference section with documentation for every operation in the SDK. This screenshot was taken from SnapTrade's TypeScript SDK which served as a template for all revamped SDKs.

Konfig's TypeScript SDKs now use pnpm

pnpm

Based on internal quality assurance and integration tests that we regularly run on our SDKs, we found that pnpm is a better fit for our TypeScript SDKs. It's faster, more reliable, and uses less disk space than npm or yarn. The breaking point for us was concurrency bugs that were not fixable while using yarn. When switching to pnpm, we found that these issues were resolved without special configuration. This change allowed us to fix flaky tests and continually ensure our generator was working as expected.

· 3 min read

banner

It's been a fast start to the year and we are excited to bring you some new features and improvements to Konfig.

AI-Generated Operation IDs

useAIForOperationID

konfig fix now has a new option --useAIForOperationID that allows you to use AI to generate meaningful operation IDs for your OpenAPI specification.

As part of ensuring your OpenAPI specification is high-quality, it is important to write meaningful operation IDs. Operation IDs are used as method names in the generated SDKs. Konfig follows a strict convention for naming your operation ID. However, we understand that it can be a bit of a hassle to come up with these names. Furthermore, if you have a large OpenAPI spec, it can be a time-consuming task to name each operation ID. Now you can use AI to automate this process.

OpenAPI Specification 3.1 Support

openapi31

Konfig now supports OpenAPI Specification 3.1 🎉!

OpenAPI Specification 3.1 is the latest version of the OpenAPI Specification. It brought a few new features and improvements over the previous version, 3.0.x, but also introduced some breaking changes.

Particularly in 3.1, you can specify nullable by specifying the null keyword in the type field. This is a breaking change from 3.0.x where nullable was a separate field.

· 3 min read

banner

Happy New Year 🎉! We are super excited to bring you Konfig Changelog #9. We have made some improvements to the Docs Portal, fixed some security vulnerabilities and improved the Python SDK.

Docs Portal Support for iframes

iframe support

We've added support for embedding an iframe from sites such as YouTube, allowing you to embed videos and more into your portal.

Security Fixes

security fixes

We fixed a security vulnerability in our Python and TypeScript SDKs:

  1. Upgraded aiohttp from 3.8.4 to 3.9.1 in Python SDK
  2. Upgraded axios from 0.27.2 to 1.6.4 in TypeScript SDK

Note that both these changes are backward incompatible so if you already have SDKs with Konfig, we have put these upgrades behind a feature flag so you can upgrade at your own pace.

Improved Python SDK Type Hints

typehint
Screenshot of response type hint being inferred inside of VSCode

Type hints in Python used to only previously work in PyCharm but now they work in VSCode as well.

Check Out Our New Blog Posts!

We published two new blog posts:

  1. I Reviewed 1,000s of Opinions on gRPC
grpc
A fun read!

These are always fun to write because I get to learn more about the general sentiment of technology and deepen my understanding of different technologies.

  1. How To Implement Free, Fast, Local Search Using Fuse.js with Next.js SSR
search
A technical read!

To implement search functionality in Konfig's Docs Portal, we had to solve a really interesting problem around how to implement search in a Next.js app that is statically generated. This blog post goes into detail on how we solved this problem.

· 3 min read

Docs Search

Demo of Search Functionality

We've added a lightning fast search bar to the docs that allows you to quickly search for your docs. The search bar is available on the top right of the docs and has a shortcut of Ctrl + K to quickly focus on it (on Mac it's Cmd + K).

Inline SDK Installation Instructions

Inline Installation Instructions

We've added a new installation instructions section to the docs that allows you to quickly copy the SDK installation instructions for a language. This makes it easier for developers to get started with your SDKs by reducing the friction of finding the SDK installation instructions.

Google Analytics Support

konfig.yaml

_32
outputDirectory: /tmp/acme-sdks-out
_32
specInputPath: api.yaml
_32
specPath: api-fixed.yaml
_32
portal:
_32
title: Acme
_32
primaryColor: "#1f334e"
_32
logo:
_32
light: portal-logo-light.png
_32
dark: portal-logo-dark.png
_32
googleAnalyticsId: G-XXXXXXXXXX
_32
documentation:
_32
sidebar:
_32
sections:
_32
- label: Guides
_32
links:
_32
- id: getting-started
_32
path: docs/getting-started.md
_32
- id: client-side-direct-api-usage
_32
path: docs/client-side-direct-api-usage.md
_32
demos:
_32
- id: getting-started
_32
path: demos/getting-started.md
_32
generators:
_32
python:
_32
version: 1.0.0
_32
packageName: acme_client
_32
projectName: acme-python-sdk
_32
outputDirectory: python
_32
clientName: Acme
_32
git:
_32
userId: konfig-dev
_32
repoId: acme-sdks/tree/main/python

Sample configuration for Google Analytics

You can now add your Google Analytics ID to your docs configuration and we'll automatically add the Google Analytics script to your docs. See the full instructions for adding Google Analytics to your docs here.

· 10 min read
Anh-Tuan Bui

pivoting-from-b2b-gaming

summary
  • Even though the gaming TAM looks large on paper, gaming companies have diverse needs. There are nuances that shrink the TAM depending on what types of gaming companies have the hair on fire problem that your product solves
  • Based on our ideal customer profile, we had to adopt an enterprise go to market motion which was challenging to get initial traction for
  • We needed to truly be 10x better off the bat since we were looking to replace a core function for gaming companies and we couldn't get there

A startup is a long and difficult journey, one that I was wholly unprepared for despite having a decade of work experience in finance and tech. Learnings from one failed startup influence the next startup attempt, so to take a step back and discuss why I got into the gaming space in the first place, I have to talk about my first startup, an investment app that helped people learn about and construct portfolios of ETFs, that I co-founded in 2021.

· 2 min read

Banner

Python SDK Ergonomic Improvement

We improved the Python SDK to return Pydantic-based response values which allows for using the __getattr__. This is slightly more concise than the previous version, which used the __getitem__ syntax to access response values.

Before

Previously, you had to use the [] syntax to access response values. This required a little more code for every property access.


_10
response = client.store.place_order(quantity=1000)
_10
print(response.body["order_id"])

After

With Pydantic-based response values, you can use the . syntax to access. This is slightly less verbose and looks more Pythonic.


_10
response = client.store.place_order(quantity=1000)
_10
print(response.order_id)

Notice how there is also no need to use the body attribute to access the response body. All new Python SDKs will be using this new syntax.

We will not be updating previously generated Python SDKs to use this new syntax to ensure backwards compatibility.

Non-SDK Snippets in API Portal

Non-SDK Snippets
Example of generated snippet for using cURL

The API Reference page now generates non-SDK code snippets for cURL and other languages that do not have an SDK. This allows developers to quickly generate, copy, and paste code snippets regardless of whether or not there is an SDK for your language.

· 3 min read

Improved API Portal Design

We completely refactored the design and look of our API Portal to be more modern, sleek, and intuitive. Take a look at the screenshots below to see the improved design. We also added generated response examples and ergonomic improvements when navigating between pages in the portal. See a full list of changes in the "Improvements and Fixes" section below.

new design
Improved API Portal Design
docs dark
Markdown Documentation (dark)
docs light
Markdown Documentation (light)
docs dark
Markdown Documentation (with brand color header in dark mode)
docs light
Markdown Documentation (with brand color header in light mode)
reference dark
API Reference (dark)
reference light
API Reference (light)
demo dark
API Demos (dark)
demo light
API Demos (light)

Refactored SDK Documentation

We now allow you to brand your README.md with a banner image using the new readmeHeader property in your konfig.yaml file like so:

konfig.yaml

_10
readmeHeader:
_10
title: Acme
_10
image: header.png
_10
url: https://acme.com

This generates READMEs with your image and title at the top of the file like so:

README Header
Example TypeScript SDK README.md file

We completely overhauled the generated documentation for Python and TypeScript to be easier to read and find what you're looking for.

TOC
Table of Contents
TypeScript Usage
Usage (TypeScript)
TypeScript Usage
Usage (TypeScript)
Python Usage
Usage (Python)
TypeScript Return
Parameters and Response (TypeScript)
Python Return
Parameters and Response (Python)

We also plan to improve the generated documentation for other SDKs.

Improvements and Fixes
  • API Portal now preserves scroll position when navigating between pages
  • Clicking the logo in the top-left corner brings you back to homepage
  • Implemented light/dark logo theme for API Portal
  • Added -x to not start a mock server in konfig test
  • Fix table rendering width larger than viewport in API Portal
  • Fix table from causing horizontal scroll on small screens
  • Fixed handling of non-Blob type values in TypeScript SDK for multipart/form-data
  • Handle array type schemas in request body for API Portal
  • Support bash, JavaScript, and many more languages as code blocks in API Portal
  • Point top-level API Portal domain to documentation if documentation is configured
  • Remove nested documentation in Python SDK
  • Embed all documentation into neatly organized README.md for Python SDK
  • Removed nested documentation for TypeScript SDK
  • Embed all documentation into neatly organized README.md for TypeScript SDK
  • Added ability to order endpoints in the API Reference page
  • Fixed scrollbar blocking header on Windows for API Portal
  • Fixed bug in konfig fix where fixing operation IDs fail because await wasn't used
  • Fix invalid links in top-level README.md in SDK repository
  • Show example values and schema in API Portal for operations

· 2 min read

Dart

Konfig now supports generating Dart SDKs! This means that you can now use Konfig to generate SDKs for your customer's Flutter applications or Dart projects.

info

According to Stack Overflow's 2023 Developer Survey, Flutter is in the top 10 of the most admired frameworks for developers, with 64% of professional developers enjoying the programming language.

Dart

Generated Python Snippets

Konfig's API Portal now seamlessly integrates your Python SDK into the API Reference Page. This means that you can dynamically generate Python code snippets that can be easily copy-pasted for lightning-fast integration in Python. This is the second of many SDK languages that we will be integrating into Konfig.

Example Generated Python Snippet
Example Generated Python Snippet for SnapTrade

Improved API Portal Styling

We made improvements to the styling of the API Portal. The API portal now has rounder edges and denser styling to make it easier to read and navigate. We also made the navbar on the left side smaller to give more room for the core content on the page.

Example API Reference Page
Example API Reference Page in dark mode for SnapTrade
Example API Documentation Page
Example API Markdown Page in dark mode for SnapTrade
Improvements and Fixes
  • Eliminated dependency security vulnerabilities in Python and TypeScript SDKs
  • Add removeKonfigBranding configuration to Go SDK
  • Improved generated tests and documentation for Go SDKs
  • Created konfig pr-merge and konfig-pr-create commands for GitHub automation
  • Fixed Git repository tagging for Go publishing to properly be indexed by pkg.go.dev
  • Support submodules for Go SDK
  • Created new lint rule to catch potentially invalid required syntax
  • Created konfig list-sdk-submodules to be used in automation
  • Support submodules in the automation pipeline
  • Added client state validation in Ruby to catch invalid client state when SDK is instantiated
  • Validate UUID parameters in the API Reference Page
  • Created documentation for setting up API Portal with custom markdown pages
  • Added --tolerate-republish flag to konfig publish to allow for gracefully publishing of existing versions
  • Support multipart/form-data input for konfig mock server
  • Fix bug with .yaml files not being properly pulled in konfig pull

· 2 min read

Markdown Pages

We are excited to announce the release of Markdown Pages! This feature allows you to create a custom documentation page for your API / SDKs. You can use markdown pages to provide examples, links to external documentation, or any other information you want to share with your users. Konfig's markdown pages are fully integrated with the rest of the portal, so you can easily create links to API endpoints or interactive demos.

Example Markdown Page
Example Markdown Page for SnapTrade

Currently, we are deploying with a few early customers. If you are interested in trying it out, please reach out to [email protected].

Improvements and Fixes
  • Add --ci flag to konfig fix to loosen fix rules for CI/CD automation
  • Security credentials are now hidden in API Reference page
  • Fixed handling of "date-time" format in API Reference page inputs
  • Support array of integers / strings in API Reference page
  • Support OAuth client credentials flow in API Reference page
  • Support file type parameters in API Reference page
  • Fixed storage of API Reference page inputs in local storage to prevent forms from other pages from being shared
  • Fixed bug in Python SDK with incorrect reference to schema instead of model
  • Fixed bug in setupcode for generated test_deprecation_warning.py test in Python SDK
  • Fixed bug in README.md for badge in Python/TypeScript/Java SDKs when dash "-" is used
  • Fixed bug in generated TypeScript code in API Reference where snake case was improperly converted to camel case