diff --git a/src/Helldivers-2-API/OpenApi/DocumentProcessors/HelldiversDocumentProcessor.cs b/src/Helldivers-2-API/OpenApi/DocumentProcessors/HelldiversDocumentProcessor.cs index ae42331..ac7d426 100644 --- a/src/Helldivers-2-API/OpenApi/DocumentProcessors/HelldiversDocumentProcessor.cs +++ b/src/Helldivers-2-API/OpenApi/DocumentProcessors/HelldiversDocumentProcessor.cs @@ -41,6 +41,30 @@ public void Process(DocumentProcessorContext context) property.OneOf.Clear(); } } + + context.Document.SecurityDefinitions.Add(Constants.CLIENT_HEADER_NAME, new OpenApiSecurityScheme + { + Type = OpenApiSecuritySchemeType.ApiKey, + In = OpenApiSecurityApiKeyLocation.Header, + Name = Constants.CLIENT_HEADER_NAME, + Description = "A unique name that identifies your client to the API." + }); + + context.Document.SecurityDefinitions.Add(Constants.CONTACT_HEADER_NAME, new OpenApiSecurityScheme + { + Type = OpenApiSecuritySchemeType.ApiKey, + In = OpenApiSecurityApiKeyLocation.Header, + Name = Constants.CONTACT_HEADER_NAME, + Description = "Contact information for the developer (e.g. an email address or URL)." + }); + + context.Document.SecurityDefinitions.Add("Bearer", new OpenApiSecurityScheme + { + Type = OpenApiSecuritySchemeType.Http, + Scheme = "bearer", + BearerFormat = "JWT", + Description = "A JWT bearer token for authenticated access." + }); } } #endif diff --git a/src/Helldivers-2-API/OpenApi/OperationProcessors/SuperHeadersProcessor.cs b/src/Helldivers-2-API/OpenApi/OperationProcessors/SuperHeadersProcessor.cs index ff014fa..a01598f 100644 --- a/src/Helldivers-2-API/OpenApi/OperationProcessors/SuperHeadersProcessor.cs +++ b/src/Helldivers-2-API/OpenApi/OperationProcessors/SuperHeadersProcessor.cs @@ -14,27 +14,12 @@ public class SuperHeadersProcessor : IOperationProcessor /// public bool Process(OperationProcessorContext context) { - context.OperationDescription.Operation.Parameters.Add( - new OpenApiParameter + context.OperationDescription.Operation.Security ??= []; + context.OperationDescription.Operation.Security.Add( + new OpenApiSecurityRequirement { - Name = Constants.CLIENT_HEADER_NAME, - Kind = OpenApiParameterKind.Header, - Type = NJsonSchema.JsonObjectType.String, - IsRequired = true, - Description = "The name of the header that identifies the client to the API.", - Default = string.Empty - } - ); - - context.OperationDescription.Operation.Parameters.Add( - new OpenApiParameter - { - Name = Constants.CONTACT_HEADER_NAME, - Kind = OpenApiParameterKind.Header, - Type = NJsonSchema.JsonObjectType.String, - IsRequired = true, - Description = "The name of the header with developer contact information.", - Default = string.Empty + { Constants.CLIENT_HEADER_NAME, [] }, + { Constants.CONTACT_HEADER_NAME, [] } } );