介绍
本篇文章给大家分享的是有关大摇大摆怎么在asp.net 3.0核心项目中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强>大摇大摆基本使用# 强>
大摇大摆服务注册:
services.AddSwaggerGen (option =比; ,{ ,option.SwaggerDoc (“sparktodo", new OpenApiInfo ,{ Version =,才能“v1", Title =,才能“SparkTodo API" Description =,才能“API for SparkTodo" 时间=Contact 才能;new OpenApiContact (), {, Name =,“WeihanLi",, Email =,“weihanli@outlook.com",} ,}); , ,//include document 文件 ,option.IncludeXmlComments (Path.Combine (AppContext.BaseDirectory,美元“{typeof(启动).Assembly.GetName () . name} .xml"),,真的); 以前,});>中间件配置:
//Enable middleware 用serve generated Swagger as a JSON 端点。 app.UseSwagger ();//Enable middleware 用serve swagger-ui (HTML、, JS, CSS 等等),,specifying 从而Swagger JSON 端点 app.UseSwaggerUI (option =比; { ,option.SwaggerEndpoint(“/得意/sparktodo/swagger.json",,“sparktodo Docs");=,,option.RoutePrefix  string.Empty;=,option.DocumentTitle “SparkTodo API"; });<强>为大摇大摆添加持票人牌认证# 强>
services.AddSwaggerGen (option =比; { ,//? ,//Add security 定义 ,option.AddSecurityDefinition (“Bearer", new OpenApiSecurityScheme () ,{=,Description “Please enter into field 从而word & # 39;无记名# 39;,followed by a space 以及,JWT value"=,Name “Authorization", ,=,拷贝ParameterLocation.Header,=,,Type  SecuritySchemeType.ApiKey, ,}); option.AddSecurityRequirement (new OpenApiSecurityRequirement ,{ ,{new OpenApiSecurityScheme ,{ 参考文档才能=,new OpenApiReference () {才能 Id =,才能“Bearer", Type 才能=ReferenceType.SecurityScheme ,,} ,},Array.Empty(),} ,}); }); <强>支持多个ApiVersion # 强>
services.AddApiVersioning (options =比; ,{=,options.AssumeDefaultVersionWhenUnspecified 真实;=,,options.DefaultApiVersion  ApiVersion.Default;=,options.ReportApiVersions 真实; ,}); services.AddSwaggerGen (option =比; { ,//? ,option.SwaggerDoc (“v1", new OpenApiInfo {=, Version “v1",, Title =,“API v1",}); ,option.SwaggerDoc (“v2", new OpenApiInfo {=, Version “v2",, Title =,“API v2",}); ,option.DocInclusionPredicate ((docName, apiDesc),=比; ,{ ,var versions =, apiDesc.CustomAttributes () .OfType<才能;ApiVersionAttribute> () .SelectMany才能(attr =祝辞,attr.Versions); ,return versions.Any (v =祝辞,美元“v {v.ToString ()},,==, docName); ,}); ,option.OperationFilter(); ,option.DocumentFilter (); }); 自定义Api版本相关的OperationFilter:
public class SetVersionInPathDocumentFilter : IDocumentFilter { ,public void 应用(OpenApiDocument swaggerDoc, DocumentFilterContext 上下文) ,{ ,var updatedPaths =, new OpenApiPaths (); ,foreach (var entry  swaggerDoc.Paths拷贝) ,{ updatedPaths.Add才能( entry.Key.Replace才能(“v {version}“,, swaggerDoc.Info.Version), entry.Value才能); ,}=,,swaggerDoc.Paths  updatedPaths; ,} } public class RemoveVersionParameterOperationFilter : IOperationFilter { ,public void 应用(OpenApiOperation 操作,,OperationFilterContext 上下文) ,{ ,//Remove version  parameter 得到all 操作 ,var versionParameter =, operation.Parameters.Single (p =祝辞,p.Name ==,“version"); ,operation.Parameters.Remove (versionParameter); ,} null null null null null null null null null null null昂首阔步怎么在asp.net 3.0核心项目中使用