add flower controller
This commit is contained in:
@@ -25,7 +25,26 @@ public class Program
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.OperationFilter<SwaggerHttpHeaderOperation>();
|
||||
//options.OperationFilter<SwaggerHttpHeaderOperation>();
|
||||
|
||||
var scheme = new OpenApiSecurityScheme
|
||||
{
|
||||
Description = "授权头。 示例: \"RG//HkvcTZdBospBOT6OuoWfsc1GS+P/js9zFdflBr0=\"",
|
||||
Reference = new OpenApiReference
|
||||
{
|
||||
Type = ReferenceType.SecurityScheme,
|
||||
Id = "Authorization"
|
||||
},
|
||||
Scheme = "oauth2",
|
||||
Name = "Authorization",
|
||||
In = ParameterLocation.Header,
|
||||
Type = SecuritySchemeType.ApiKey
|
||||
};
|
||||
options.AddSecurityDefinition("Authorization", scheme);
|
||||
options.AddSecurityRequirement(new OpenApiSecurityRequirement
|
||||
{
|
||||
[scheme] = Array.Empty<string>()
|
||||
});
|
||||
|
||||
options.SwaggerDoc(Version, new OpenApiInfo
|
||||
{
|
||||
@@ -38,6 +57,7 @@ public class Program
|
||||
});
|
||||
|
||||
builder.Services.AddDbContext<FlowerDatabase>(options => options.UseSqlite("DataSource=flower.db;Cache=Shared"));
|
||||
builder.Services.AddScoped<SwaggerGenerator>();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
@@ -64,12 +84,23 @@ public class SwaggerHttpHeaderOperation : IOperationFilter
|
||||
/// <inheritdoc/>
|
||||
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
||||
{
|
||||
operation.Parameters.Add(new OpenApiParameter
|
||||
var required = context.ApiDescription.RelativePath switch
|
||||
{
|
||||
Name = "X-Auth",
|
||||
In = ParameterLocation.Header,
|
||||
Required = false,
|
||||
Schema = new OpenApiSchema { Type = "string" }
|
||||
});
|
||||
"user/update" or
|
||||
"user/profile" or
|
||||
"user/logout" => true,
|
||||
_ => false
|
||||
};
|
||||
if (required)
|
||||
{
|
||||
operation.Parameters.Add(new OpenApiParameter
|
||||
{
|
||||
Name = "Authorization",
|
||||
Description = "授权 Token",
|
||||
In = ParameterLocation.Header,
|
||||
Required = true,
|
||||
Schema = new OpenApiSchema { Type = "string" }
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user