Skip to content

Repository files navigation

TypedRest Code Generation

Build API documentation
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.

NuGet packages

TypedRest.CodeGeneration
Parses OpenAPI/Swagger documents and infers TypedRest Endpoints from patterns.

TypedRest.CodeGeneration.CSharp
Generates C# source code for TypedRest .NET clients from OpenAPI/Swagger documents.

TypedRest.CodeGeneration.TypeScript
Generates TypeScript source code for TypedRest clients from OpenAPI/Swagger documents.

TypedRest.CodeGeneration.Jvm
Shared logic for generating source code for JVM-based languages.

TypedRest.CodeGeneration.Java
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.

TypedRest.CodeGeneration.Kotlin
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.

TypedRest.SourceGenerator
Roslyn source generator that builds C# clients during compilation.

typedrest-codegen
Command-line tool that writes the generated code to disk.

Building

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).

Contributing

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.

About

Generate TypedRest clients from OpenAPI/Swagger specifications

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages