-
Notifications
You must be signed in to change notification settings - Fork 0
/
CustomSwaggerExtension.cs
40 lines (37 loc) · 1.57 KB
/
CustomSwaggerExtension.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.OpenApi.Models;
namespace PayCoreFinalWork.Core.WebAPI.Concrete.Extensions
{
public static class CustomSwaggerExtension
{
// Swagger üzerinde JWT Bearer konfigürasyonu için gerekli extension metod.
public static IServiceCollection AddCustomizeSwagger(this IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "PayCore - Final Project API Management", Version = "v1.0" });
c.OperationFilter<SwaggerFileOperationFilter>();
var securityScheme = new OpenApiSecurityScheme
{
Name = "API Management for PayCore - Final Project",
Description = "Enter JWT Bearer token **_only_**",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = "bearer",
BearerFormat = "JWT",
Reference = new OpenApiReference
{
Id = JwtBearerDefaults.AuthenticationScheme,
Type = ReferenceType.SecurityScheme
}
};
c.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme);
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{securityScheme, new string[] { }}
});
});
return services;
}
}
}