NSWAG:.NET,ASP.NET核心和打字稿的Swagger/OpenAPI工具链
NSWAG | NJSonschema | Apimundo | namotion.反射
宣布Apimundo:基于NSWAG和NJSONSCHEMA的API文档系统?
NSWAG是用于.net,.net Core,Web API,ASP.NET Core,tyspript(jQuery,angularjs,Angularjs,AngularJs,Angular 2+,Aurelia,aurelia,quotionjs等)和其他平台的Swagger/OpenAPI 2.0和3.0工具链。 OpenAPI/Swagger规范使用JSON和JSON模式来描述RESTFUL WEB API。 NSWAG项目提供了从现有ASP.NET Web API控制器和客户端代码中生成OpenAPI规格的工具。
该项目结合了一个工具链中的swashbuckle(OpenApi/Swagger Generation)和Autorest(客户生成)的功能(不需要这两个LIB)。这样,就可以避免许多无镇的人,并且可以更好地支持OpenAPI规范或JSON模式(例如继承,枚举和参考处理)的功能。 NSWAG项目大量使用NJSonschema用于.NET进行JSON模式处理和C#/Typescript类/接口生成。

该项目由Rico Suter和其他贡献者开发和维护。
特征
- 从C#ASP.NET(CORE)控制器生成Swagger 2.0和OpenAPI 3.0规格
- 通过ASP.NET(CORE)中间件服务规格,可选地使用Swagger UI或REDOC
- 从这些规格生成C#或打字稿客户端/代理
- 一切都可以通过CLI自动化(通过Nuget工具或构建目标分布;或NPM)
- 通过JSON文件或NSWAGSTUDIO Windows UI配置的CLI
使用工具链的方法
- 易于使用Windows GUI,NSWAGSTUDIO
- 通过使用OpenAPI或OpenAPI UI OWIN和ASP.NET Core Middlewares(也提供Swagger UI)(建议)
- 通过命令行(Windows,Mac和Linux通过Mono或.NET Core Console二进制支持,也可以通过NPM软件包)
- 在您的C#代码中,通过Nuget
- 在您的MSBUILD目标中
- 带有.csproj(预览)中的ServiceProjectReference标签
- 在您的Azure V2函数中(外部项目,可能不使用最新的NSWAG版本)
教程
- 将NSWAG添加到您的ASP.NET核心应用
- 将NSWAG工具链集成到您的ASP.NET Web API项目中
- 从现有的ASP.NET Web API Web组装中生成Angular打字端客户端
- 视频教程:如何将NSWAG集成到您的ASP.NET核心Web API项目(5分钟)
OpenAPI/Swagger Generator
- ASP.NET Web API汇编到OpenAPI(支持.NET Core)
- AspnetCoreopenapidocumentgenerator
- WebApiopenapidocumentgenerator
- WebapitoopEnapicommand
- 在外部Web API组件中为控制器生成OpenAPI规范
- 还支持.NET核心组件的加载
- pastestoopenapicommand
- 生成一个仅包含.NET组件类型的OpenAPI规范
代码生成器
- CSHARP客户端
- csharpclientgenerator
- 从OpenAPI规范生成C#客户端
- 生成实施InotifyPropertychanged DTOS的POCO或类
- 生成的客户可以与Full .NET,.NET Core,Xamarin和.Net标准1.4一起使用
- CSHARP控制器(合同第一/模式第一开发)
- csharpcontrollergenerator
- 基于OpenAPI规范生成Web API控制器(ASP.NET Web API和ASP.NET Core)
- 打字稿客户端
- TypescriptClientGenerator
- 从OpenAPI规范生成TypeScript客户端
- 可用的模板/支持的库:
- 带回调的jQuery,
JQueryCallbacks - 与承诺的jQuery
JQueryPromises - 使用$ http,
AngularJS angularjs - 使用HTTP服务的角(V2+)
Angular - window.fetch API和ES6承诺,
Fetch (在您的React/Redux应用中使用此模板) - 使用Aurelia-fetch-Client,
Aurelia (基于提取模板)的httpclient的Aurelia -
Axios (预览)
下载
- 下载最新的NSWAGSTUDIO MSI安装程序(NSWAGSTUDIO.MSI) (Windows Desktop应用程序)
- 下载最新的NSWAG命令行工具和NSWAGSTUDIO(NSWAG.ZIP)
NPM软件包
- NSWAG:命令行工具(.NET和.NET CORE)分布为NPM软件包
Nuget软件包
规格
- NSWAG.CORE
- OpenAPI / Swagger Reader和Writer课程,请参阅OpenApidocument(.NET标准1.0 / 2.0和.NET 4.5)
- NSWAG.CORE.YAML (.NET标准1.3 / 2.0和.NET 4.5)
- NSWAG.Annotations (.NET标准1.0 / 2.0和.NET 4.5)
- 装饰Web API控制器以控制OpenAPI生成的属性
OpenAPI一代
- nswag.generation (.NET标准1.0 / 2.0和.NET 4.5)
- nswag.generation.webapi (.NET标准1.0 / 2.0和.NET 4.5)
- nswag.generation.aspnetcore (.NET标准1.6 / 2.0和.NET 4.5.1)
- (实验)使用APIEXPLORER从ASP.NET Core MVC控制器生成OpenAPI规格的类
代码生成
- nswag.codegeneration (.NET标准1.3 / 2.0 / .NET 4.5.1)
- nswag.codegeneration.csharp (.NET标准1.3和.NET 4.5.1)
- nswag.codegeneration.typescript (.NET标准1.3和.NET 4.5.1)
- 从OpenAPI规范生成Typescript客户端的类,请参阅TypescriptClientGenerator
ASP.NET和ASP.NET核心
- NSWAG.ASPNETCORE (.NET标准1.6 / 2.0和.NET 4.5.1+)
- nswag.aspnet.owin (.net 4.5+)
- ASP.NET Core/Owin Midderwares,用于服务OpenAPI规格和Swagger UI
- nswag.aspnet.webapi (.net 4.5+)
- ASP.NET Web API滤波器序列化异常(jsonexceptionFilterAttribute)
前端
- nswag.semblyloader (.NET标准1.6 / 2.0和.NET 4.5.1):
- 将组件加载到孤立的AppDomain中并从Web API控制器生成OpenAPI规格的类
- nswag.commands (.NET标准1.6 / 2.0和.NET 4.5.1+):
- NSWAG.MSBUILD (MSBUILD .targets):
- 将.targets文件添加到您的Visual Studio项目,以便您可以在MSBuild目标中运行NSWAG命令行工具,请参阅MSBUILD
- nswag.consolecore (.net Core 1.0、1.1、2.0、2.1和2.2):
- .NET CORE的命令行工具(
dotnet nswag ) -
<DotNetCliToolReference Include="NSwag.ConsoleCore" Version="..." />
- NSWAGSTUDIO (巧克力,窗户):
- 包装通过巧克力安装NSWAGSTUDIO和命令行工具
CI Nuget feed
https://www.myget.org/f/nswag/api/v3/index.json
Nuget软件包可能需要microsoft.netcore.portable.com.net core/uwp targets(如果缺少MSCORLIB)。

在C#中使用
要注册MiddleWares以生成OpenAPI规格并渲染UI,请在Startup.cs中注册NSWAG:
public class Startup
{
.. .
public void ConfigureServices ( IServiceCollection services )
{
services . AddOpenApiDocument ( ) ; // add OpenAPI v3 document
// services.AddSwaggerDocument(); // add Swagger v2 document
}
public void Configure ( IApplicationBuilder app , IHostingEnvironment env , ILoggerFactory loggerFactory )
{
.. .
app . UseOpenApi ( ) ; // serve OpenAPI/Swagger documents
app . UseSwaggerUi ( ) ; // serve Swagger UI
app . UseReDoc ( ) ; // serve ReDoc UI
}
}以下代码显示了如何读取OpenAPI/Swagger规范并生成C#客户端类以调用所描述的Web服务:
var document = await OpenApiDocument . FromFileAsync ( "openapi.json" ) ;
var clientSettings = new CSharpClientGeneratorSettings
{
ClassName = "MyClass" ,
CSharpGeneratorSettings =
{
Namespace = "MyNamespace"
}
} ;
var clientGenerator = new CSharpClientGenerator ( document , clientSettings ) ;
var code = clientGenerator . GenerateFile ( ) ;查看Wiki项目以获取更多信息。
NSWAGSTUDIO
发电机可用于称为NSWAGSTUDIO的舒适且简单的Windows GUI:
赞助商,支持和咨询
下面列出了用于实施,解决问题,支持或赞助的公司或个人。感谢您支持这个项目!您也可以成为财务贡献者:
- 赞助商主要贡献者Rico Suter通过GitHub
- 赞助商项目通过开放集体的NSWAG项目
请联系Rico Suter以获取付费咨询和支持。
贡献者
由于所有贡献的人,该项目的存在。 [贡献]。
赞助商
通过成为赞助商来支持这个项目。您的徽标将在此处显示您网站的链接。
顶级赞助商:
赞助商:
支持者
感谢我们所有的支持者!