-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Home
Rico Suter edited this page Apr 26, 2018
·
138 revisions
Roadmap | SDK Development | Contribute
- Command Line (via NPM or MSI Installer)
-
NSwagStudio (Windows GUI)
- Edit .nswag configuration files which can be executed via command line
- Swagger specification via URL or from a .NET assembly (no running web app needed)
- ASP.NET HTTP Middlewares
- Run as part of the MSBuild process
- T4 templates
- Video Tutorial: How to integrate NSwag into your ASP.NET Core Web API project (5 mins)
- Integrate the NSwag toolchain into your ASP.NET Web API project
- Generate an Angular 2 TypeScript client from an existing ASP.NET Web API web assembly
- Implement a custom operation processor to define ReDoc code samples
- SwaggerDocument class: The .NET class describing a Swagger specification
- OpenApi 3 support
- YAML support
Available Swagger generators:
- AspNetCoreToSwaggerGenerator (experimental)
- WebApiToSwaggerGenerator: Generate a Swagger specification from Web API controller classes
- WebApiAssemblyToSwaggerGenerator: Generate a Swagger specification from a Web API assembly
The Swagger generators use the JSON Schema generator from the NJsonSchema project:
- JsonSchemaGenerator (NJsonSchema): Generates schemas from .NET classes
-
XML Documentation (NJsonSchema)
- The
NSwag.AspNetCore
NuGet package automatically installs the required NuGet packages for reading XML Documentation.
- The
- Enums (NJsonSchema)
- Inheritance (NJsonSchema): How to describe and generate inheritance of DTO classes.
Swagger generation:
You can customize the Swagger generator with the following extension points of NSwag:
Schema processing:
- Type Mappers (NJsonSchema): Type mappers allow you to generate a custom JSON Schema for a given .NET type.
- Schema Processors (NJsonSchema): Post process the generation of the schema or child schemas
- Schema Name Generators (NJsonSchema): Customize the names of schema 'definitions' keys.
Available code generators:
- SwaggerToTypeScriptClientGenerator: Generate TypeScript clients
- SwaggerToCSharpClientGenerator: Generate CSharp clients
- SwaggerToCSharpControllerGenerator: Generate CSharp Web API controllers (contract first/schema first development)
Extension points:
- Property Name Generators (NJsonSchema): Customize the generation of property names.
- Type Name Generators (NJsonSchema): Customize the way how C#/TypeScript class or interface names are generated.