SdkGenerator 1.2.0
See the version list below for details.
dotnet tool install --global SdkGenerator --version 1.2.0
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local SdkGenerator --version 1.2.0
#tool dotnet:?package=SdkGenerator&version=1.2.0
nuke :add-package SdkGenerator --version 1.2.0
Swashbuckle SDK Generator
This program allows you to generate a hand-optimized software development kit for different programming languages for your REST API.
This opinionated software makes assumptions about your API and attempts to create a SDK that matches good practices in each programming language. The OpenAPI / Swagger spec permits lots of different ways of doing things; this tool is intended to work only with commonly seen use cases.
Using this program
Here's how to use this program.
- Install the program using NuGet
> dotnet tool install --global SdkGenerator
- Create a project file, then fill out all the values you want to use in it
> sdkgenerator create -p .\myapi.json
- Run the program and build a single language OR build all languages
> sdkgenerator build -p .\myapi.json
You can automate these steps in a Github workflow to execute this program automatically on new releases.
Supported Languages
Language | Supported | Github Workflows | Notes |
---|---|---|---|
C# | Yes | Automated | Live |
Dart | In Progress | No | In development |
Java | Yes | No | |
Python | Yes | No | Live |
Ruby | In Progress | No | Somewhat supported |
TypeScript | Yes | No | Live |
Supported Tools
Language | Supported | Notes |
---|---|---|
Readme | Yes | Markdown-formatted documentation can upload to Guide pages |
Workato | Partially | Somewhat supported |
OpenAPI assumptions
Examples of assumptions about OpenAPI made by this program:
- Only supports OpenAPI 3.0
- Your server supports GZIP encoding and HTTPS connection pooling
- An endpoint returns only a single data type and a single error type
- Each API has a single-word category, a four-word title, and a long remarks section that is a description
- You have a list of public environments (e.g. production, sandbox) that are documented in the SDK
- For test environments or dedicated servers, an SDK user must define a custom environment URL
- Enums are sometimes unsafe for SDK usage; all enums are converted to integers or strings
- Nobody intentionally adds HttpStatusCode to their swagger file; if it appears, ignore it
- Each API has a unique
summary
value in the swagger file which will be used as method names for the SDK
Attribution
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
1.2.5 | 167 | 3/14/2024 |
1.2.4 | 163 | 2/10/2024 |
1.2.3 | 112 | 1/29/2024 |
1.2.2 | 178 | 1/12/2024 |
1.2.1 | 287 | 10/22/2023 |
1.2.0 | 240 | 10/11/2023 |
1.1.9 | 220 | 10/9/2023 |
1.1.8 | 183 | 9/14/2023 |
1.1.7 | 202 | 9/10/2023 |
1.1.6 | 287 | 8/22/2023 |
1.1.5 | 244 | 8/22/2023 |
1.1.4 | 239 | 8/22/2023 |
1.1.3 | 246 | 8/22/2023 |
1.1.2 | 159 | 8/22/2023 |
1.1.2-beta | 114 | 8/22/2023 |
1.1.1 | 150 | 8/19/2023 |
1.1.0 | 127 | 8/18/2023 |
1.0.0 | 169 | 7/28/2023 |
# 1.2.0
October 11, 2023
* Verified that Python and TypeScript work correctly, at least for my current SDKs