IGeekFan.AspNetCore.RapiDoc
0.0.1
See the version list below for details.
dotnet add package IGeekFan.AspNetCore.RapiDoc --version 0.0.1
NuGet\Install-Package IGeekFan.AspNetCore.RapiDoc -Version 0.0.1
<PackageReference Include="IGeekFan.AspNetCore.RapiDoc" Version="0.0.1" />
paket add IGeekFan.AspNetCore.RapiDoc --version 0.0.1
#r "nuget: IGeekFan.AspNetCore.RapiDoc, 0.0.1"
// Install IGeekFan.AspNetCore.RapiDoc as a Cake Addin #addin nuget:?package=IGeekFan.AspNetCore.RapiDoc&version=0.0.1 // Install IGeekFan.AspNetCore.RapiDoc as a Cake Tool #tool nuget:?package=IGeekFan.AspNetCore.RapiDoc&version=0.0.1
IGeekFan.AspNetCore.RapiDoc
RapiDoc Custom Element for Open-API spec viewing ,支持 .NET Core3.1 、.NET Standard2.0、.NET5.0。
一个实现了Swagger 2.0 and OpenAPI 3.0,适用于任何框架或没有框架的API文档.我将其集成到 AspNetCore 中。更多特性,请参考 RapiDoc README
相关依赖项
RapiDoc
- rapidoc^8.4.9 (版本号)
Swashbuckle.AspNetCore
- Swashbuckle.AspNetCore.Swagger
- Swashbuckle.AspNetCore.SwaggerGen
Demo
📚 快速开始
🚀安装包
以下为使用Swashbuckle.AspNetCore.Swagger底层组件
1.Install the standard Nuget package into your ASP.NET Core application.
Package Manager :
Install-Package Swashbuckle.AspNetCore.Swagger
Install-Package Swashbuckle.AspNetCore.SwaggerGen
Install-Package IGeekFan.AspNetCore.RapiDoc
OR
CLI :
dotnet add package Swashbuckle.AspNetCore.Swagger
dotnet add package Swashbuckle.AspNetCore.SwaggerGen
dotnet add package IGeekFan.AspNetCore.RapiDoc
2.In the ConfigureServices method of Startup.cs, register the Swagger generator, defining one or more Swagger documents.
using Microsoft.AspNetCore.Mvc.Controllers
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using IGeekFan.AspNetCore.RapiDoc;
🚁 ConfigureServices
3.服务配置,CustomOperationIds和AddServer是必须的。
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1",new OpenApiInfo{Title = "API V1",Version = "v1"});
c.AddServer(new OpenApiServer()
{
Url = "",
Description = "vvv"
});
c.CustomOperationIds(apiDesc =>
{
var controllerAction = apiDesc.ActionDescriptor as ControllerActionDescriptor;
return controllerAction.ControllerName+"-"+controllerAction.ActionName;
});
});
💪 Configure
- 中间件配置
app.UseSwagger();
app.UseRapiDocUI(c =>
{
c.RoutePrefix = ""; // serve the UI at root
c.SwaggerEndpoint("/v1/api-docs", "V1 Docs");
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapSwagger("{documentName}/api-docs");
});
5.更多功能
为文档添加注释 在项目上右键--属性--生成
在AddSwaggerGen方法中添加如下代码
c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "SwaggerDemo.xml"),true);
最后一个参数设置为true,代表启用控制器上的注释
NSwag.AspNetCore
(请参考目录test/WebSites/NSwag.Swagger.RapiDoc)
public void ConfigureServices(IServiceCollection services)
{
// 其它Service
services.AddOpenApiDocument();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 其它 Use
app.UseOpenApi();
app.UseRapiDocUI(c =>
{
c.RoutePrefix = "";
c.SwaggerEndpoint("/swagger/v1/swagger.json");
});
}
即可使用 RapiDoc
🔎 效果图
运行项目,打开 https://localhost:5001/index.html#/home
更多配置请参考
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. 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 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.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. |
-
.NETCoreApp 3.1
- Swashbuckle.AspNetCore.Swagger (>= 5.5.1)
- Swashbuckle.AspNetCore.SwaggerGen (>= 5.5.1)
-
.NETStandard 2.0
- Microsoft.AspNetCore.Routing (>= 2.1.0)
- Microsoft.AspNetCore.StaticFiles (>= 2.1.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 2.1.0)
- Swashbuckle.AspNetCore.Swagger (>= 5.5.1)
- Swashbuckle.AspNetCore.SwaggerGen (>= 5.5.1)
- System.Text.Json (>= 4.6.0)
-
net5.0
- Swashbuckle.AspNetCore.Swagger (>= 5.5.1)
- Swashbuckle.AspNetCore.SwaggerGen (>= 5.5.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on IGeekFan.AspNetCore.RapiDoc:
Package | Downloads |
---|---|
IGeekFan.AspNetCore.RapiDoc.Extra
Middleware to expose an embedded version of the RapiDoc from an ASP.NET Core application And support Filter |
|
IGeekFan.FreeKit.Infrastructure
基础包功能模块 |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on IGeekFan.AspNetCore.RapiDoc:
Repository | Stars |
---|---|
luoyunchong/lin-cms-dotnetcore
😃A simple and practical CMS implemented by .NET + FreeSql;前后端分离、Docker部署、OAtuh2授权登录、自动化部署DevOps、自动同步至Gitee、代码生成器、仿掘金专栏
|