MagnusOpera.OpenApiGen
0.13.0
Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet tool install --global MagnusOpera.OpenApiGen --version 0.13.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local MagnusOpera.OpenApiGen --version 0.13.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=MagnusOpera.OpenApiGen&version=0.13.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package MagnusOpera.OpenApiGen --version 0.13.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
OpenApiGen
OpenApiGen is a .NET tool that generates simple, type-safe TypeScript clients from OpenAPI definitions. The generated clients are designed for easy integration with Axios and React Query.
Usage
Run the tool with:
openapigen <configuration-file> <openapi-file> <output-dir>
<configuration-file>
: Path to the configuration JSON file<openapi-file>
: Path to the OpenAPI definition JSON file<output-dir>
: Output directory for the generated TypeScript client (will be purged)
For help:
openapigen --help
Note on Any Types
This tool implements a workaround for a bug in Microsoft.Extensions.ApiDescription.Server 9.0.8, where nullable types are incorrectly emitted as type "any" in the OpenAPI definition. The generator heuristically locates an equivalent non-nullable schema and applies the intended nullability. This assumes the base, non-nullable schema is emitted correctly.
Example Output
Sample TypeScript code generated for a PATCH operation on /User/{id}
:
// === patch /User/{id} ===
export type UserIdPatchRequest = {
firstName: null | string;
lastName: null | string;
};
export type UserIdPatchResponse = {
firstName: string;
lastName: string;
};
export type UserIdPatch400Response = ProblemDetails;
export type UserIdPatch404Response = ProblemDetails;
export async function patchUserId(
axios: AxiosInstance,
id: string,
request: UserIdPatchRequest
): Promise<UserIdPatchResponse> {
return (await axios.patch<UserIdPatchResponse>(`/User/${id}`, request)).data;
## Features
- Generates TypeScript clients from OpenAPI definitions
- Designed for easy integration with Axios and React Query
- Inlines types for clarity and simplicity
- Minimal dependencies, no runtime bloat
## Note on Nullable Types
This tool implements a workaround for a bug in Microsoft.Extensions.ApiDescription.Server 9.0.8, where nullable types are incorrectly emitted as type "any" in the OpenAPI definition. The generator heuristically locates an equivalent non-nullable schema (with the same required members) and applies the intended nullability. This assumes the base, non-nullable schema is emitted correctly.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
Version | Downloads | Last Updated |
---|---|---|
0.32.0 | 151 | 9/13/2025 |
0.31.0 | 56 | 9/13/2025 |
0.30.0 | 144 | 9/7/2025 |
0.29.0 | 231 | 9/7/2025 |
0.28.0 | 133 | 9/5/2025 |
0.27.0 | 286 | 8/26/2025 |
0.26.0 | 176 | 8/26/2025 |
0.25.0 | 168 | 8/25/2025 |
0.24.0 | 147 | 8/25/2025 |
0.23.0 | 117 | 8/25/2025 |
0.22.0 | 201 | 8/21/2025 |
0.21.0 | 138 | 8/21/2025 |
0.20.0 | 123 | 8/21/2025 |
0.18.0 | 126 | 8/21/2025 |
0.17.0 | 125 | 8/21/2025 |
0.16.0 | 76 | 8/15/2025 |
0.15.0 | 76 | 8/15/2025 |
0.14.0 | 136 | 8/15/2025 |
0.13.0 | 113 | 8/15/2025 |
0.12.0 | 138 | 8/14/2025 |
0.11.0 | 132 | 8/14/2025 |
0.10.0 | 132 | 8/14/2025 |
0.9.0 | 181 | 8/13/2025 |
0.8.0 | 166 | 8/11/2025 |
0.7.1 | 127 | 8/11/2025 |
0.7.0 | 136 | 8/10/2025 |
0.6.0 | 130 | 8/10/2025 |
0.5.0 | 118 | 8/9/2025 |
0.4.0 | 125 | 8/9/2025 |
0.3.0 | 129 | 8/9/2025 |
0.2.0 | 106 | 8/9/2025 |
0.1.0 | 106 | 8/9/2025 |
0.0.6 | 235 | 8/7/2025 |
0.0.5 | 206 | 8/7/2025 |
0.0.4 | 210 | 8/7/2025 |
0.0.3 | 206 | 8/7/2025 |
0.0.2 | 204 | 8/7/2025 |
0.0.1 | 212 | 8/7/2025 |