SdkGenerator 1.2.6
This version failed to deploy with the correct embedded resources
See the version list below for details.
dotnet tool install --global SdkGenerator --version 1.2.6
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local SdkGenerator --version 1.2.6
#tool dotnet:?package=SdkGenerator&version=1.2.6
nuke :add-package SdkGenerator --version 1.2.6
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 | net8.0 is compatible. 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 | 83 | 10/30/2024 | |
1.3.7 | 128 | 10/20/2024 | |
1.3.6 | 115 | 10/18/2024 | |
1.3.5 | 103 | 10/5/2024 | |
1.3.4 | 78 | 9/30/2024 | |
1.3.3 | 104 | 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 | 267 | 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.6
July 25, 2024
* Fix issue with path combining
* Upgrade to DotNet 8.0
* Do not generate markdown files if not requested
* Make security schemes section blankout optional if users don't want to save keys
* Python: Fix capitalization/list issue
* TypeScript: Fix duplicated import for nested classes