TypedRest.CodeGeneration.CSharp
0.1.0
dotnet add package TypedRest.CodeGeneration.CSharp --version 0.1.0
NuGet\Install-Package TypedRest.CodeGeneration.CSharp -Version 0.1.0
<PackageReference Include="TypedRest.CodeGeneration.CSharp" Version="0.1.0" />
<PackageVersion Include="TypedRest.CodeGeneration.CSharp" Version="0.1.0" />
<PackageReference Include="TypedRest.CodeGeneration.CSharp" />
paket add TypedRest.CodeGeneration.CSharp --version 0.1.0
#r "nuget: TypedRest.CodeGeneration.CSharp, 0.1.0"
#:package TypedRest.CodeGeneration.CSharp@0.1.0
#addin nuget:?package=TypedRest.CodeGeneration.CSharp&version=0.1.0
#tool nuget:?package=TypedRest.CodeGeneration.CSharp&version=0.1.0
Code Generation for C#
Generates C# source code for TypedRest .NET clients from OpenAPI/Swagger documents.
dotnet add package TypedRest.CodeGeneration.CSharp
Use this to build your own code generator. If you just want to generate a client for your API, use the source generator or the command-line tool instead; both are built on this library.
Usage
var reader = new OpenApiStreamReader(new OpenApiReaderSettings().AddTypedRest());
var doc = reader.Read(File.OpenRead("myapi.yml"), out _);
foreach (var type in doc.GenerateTypedRest(new GenerationOptions("MyService")
{
Namespace = "MyCompany.MyService",
GenerateInterfaces = true,
GenerateDtos = true
}))
type.WriteToDirectory("myclient/");
GenerateTypedRest() uses the endpoints described by the document's x-typedrest extension, or infers them from the paths using TypedRest.CodeGeneration if there is no such extension.
Extension points
GenerateTypedRest() takes an optional PatternRegistry controlling what is inferred, and an optional BuilderRegistry controlling what is emitted:
var types = doc.GenerateTypedRest(options, patterns, builders);
Implement IBuilder<TEndpoint> to change the code emitted for an endpoint kind. A BuilderRegistry holds at most one builder per kind, so replacing a built-in one means composing the registry yourself rather than adding to BuilderRegistry.Default.
To change how types and properties are named, derive from NamingStrategy and pass it to GenerateTypedRestEndpoints().
Related packages
- TypedRest.CodeGeneration is the basis of this library. It parses OpenAPI/Swagger documents and infers TypedRest Endpoints from patterns.
- TypedRest.CodeGeneration.CSharp.SourceGenerator builds on this library to generate clients during compilation.
- typedrest-codegen is a command-line tool that builds on this library and writes the generated code to disk.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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 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. net9.0 was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- NanoByte.CodeGeneration (>= 0.7.0)
- TypedRest.CodeGeneration (>= 0.1.0)
-
net10.0
- NanoByte.CodeGeneration (>= 0.7.0)
- TypedRest.CodeGeneration (>= 0.1.0)
-
net8.0
- NanoByte.CodeGeneration (>= 0.7.0)
- TypedRest.CodeGeneration (>= 0.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 77 | 8/1/2026 |