SdkGenerator 1.2.1
See the version list below for details.
dotnet tool install --global SdkGenerator --version 1.2.1
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local SdkGenerator --version 1.2.1
#tool dotnet:?package=SdkGenerator&version=1.2.1
nuke :add-package SdkGenerator --version 1.2.1
Swashbuckle SDK Generator
This program allows you to generate a hand-optimized software development kit for different programming languages for your REST API. It can also generate documentation in Markdown or Readme formats.
Example usage of this program:
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.3.8 | 111 | 10/30/2024 | |
1.3.7 | 133 | 10/20/2024 | |
1.3.6 | 119 | 10/18/2024 | |
1.3.5 | 106 | 10/5/2024 | |
1.3.4 | 81 | 9/30/2024 | |
1.3.3 | 105 | 9/13/2024 | |
1.3.2 | 106 | 9/3/2024 | |
1.3.1 | 134 | 8/18/2024 | |
1.3.0 | 125 | 8/13/2024 | |
1.2.9 | 114 | 8/13/2024 | |
1.2.8 | 116 | 8/13/2024 | |
1.2.7 | 124 | 8/13/2024 | |
1.2.6 | 110 | 7/25/2024 | |
1.2.5 | 194 | 3/14/2024 | |
1.2.4 | 191 | 2/10/2024 | |
1.2.3 | 210 | 1/29/2024 | |
1.2.2 | 201 | 1/12/2024 | |
1.2.1 | 319 | 10/22/2023 | |
1.2.0 | 268 | 10/11/2023 | |
1.1.9 | 246 | 10/9/2023 | |
1.1.8 | 219 | 9/14/2023 | |
1.1.7 | 226 | 9/10/2023 | |
1.1.6 | 315 | 8/22/2023 | |
1.1.5 | 263 | 8/22/2023 | |
1.1.4 | 269 | 8/22/2023 | |
1.1.3 | 275 | 8/22/2023 | |
1.1.2 | 184 | 8/22/2023 | |
1.1.2-beta | 186 | 8/22/2023 | |
1.1.1 | 171 | 8/19/2023 | |
1.1.0 | 146 | 8/18/2023 | |
1.0.0 | 194 | 7/28/2023 |
# 1.2.1
October 22, 2023
* Class and property generation can now avoid language-specific keywords
* Variable names are now cleansed for parameters (some APIs use $param=value)
* Java now uses semver3 as is becoming the standard in most places
* Generated API documentation will now only link to data model pages if specified
* Readme can now select between `list` and `table` style data model documentation