Tool that automatically infers TypedRest Endpoints from patterns in OpenAPI/Swagger documents and generates source code for TypedRest clients. It can generate C#, TypeScript, Kotlin and Java clients.
Write a C# client to disk with the command-line tool:
dotnet tool install -g typedrest-codegen
typedrest-codegen generate -f myapi.yml -o myclient/ -s MyService --generate-interfaces --generate-dtos
Write a TypeScript client to disk with the command-line tool:
typedrest-codegen generate -l typescript -f myapi.yml -o src/myclient/ -s MyService --generate-dtos
Write a Java or Kotlin client to disk with the command-line tool:
typedrest-codegen generate -l java -f myapi.yml -o src/main/java/ -s MyService -n com.mycompany.myservice --generate-dtos
typedrest-codegen generate -l kotlin -f myapi.yml -o src/main/kotlin/ -s MyService -n com.mycompany.myservice --generate-dtos
Or generate a C# client during compilation instead, with nothing written to disk:
dotnet add package TypedRest.SourceGenerator
<ItemGroup>
<TypedRestOpenApi Include="myapi.yml" ServiceName="MyService" Namespace="MyCompany.MyService" />
</ItemGroup>Read the Code generation documentation for how the inference works, how to configure the tools and what to do when the inferred client is not what you want.
Parses OpenAPI/Swagger documents and infers TypedRest Endpoints from patterns.
Generates C# source code for TypedRest .NET clients from OpenAPI/Swagger documents.
Generates TypeScript source code for TypedRest clients from OpenAPI/Swagger documents.
Shared logic for generating source code for JVM-based languages.
Generates Java source code for TypedRest clients from OpenAPI/Swagger documents. TypedRest for the JVM is written in Kotlin, so prefer the Kotlin generator unless your own source is Java.
Generates Kotlin source code for TypedRest clients from OpenAPI/Swagger documents.
You can also build your own generator for more complex APIs. For the relevant types and methods take a look at the API documentation.
Roslyn source generator that builds C# clients during compilation.
Command-line tool that writes the generated code to disk.
The source code is in src/, config for building the API documentation is in doc/ and generated build artifacts are placed in artifacts/. The source code does not contain version numbers. Instead the version is determined during CI using GitVersion.
To build run .\build.ps1 or ./build.sh (.NET SDK is automatically downloaded if missing using 0install).
We welcome contributions to this project such as bug reports, recommendations and pull requests.
This repository contains an EditorConfig file. Please make sure to use an editor that supports it to ensure consistent code style, file encoding, etc.. For full tooling support for all style and naming conventions consider using JetBrains' ReSharper or Rider products.