Browse Source

More customization

pull/2106/head
David Fowler 1 year ago
parent
commit
e2a812c9bc
1 changed files with 37 additions and 14 deletions
  1. +37
    -14
      src/Services/Services.Common/CommonExtensions.cs

+ 37
- 14
src/Services/Services.Common/CommonExtensions.cs View File

@ -82,6 +82,18 @@ public static class CommonExtensions
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(setup => app.UseSwaggerUI(setup =>
{ {
/// {
/// "OpenApi": {
/// "Endpoint: {
/// "Name":
/// },
/// "Auth": {
/// "ClientId": ..,
/// "AppName": ..
/// }
/// }
/// }
var pathBase = configuration["PATH_BASE"]; var pathBase = configuration["PATH_BASE"];
var openApiSection = configuration.GetRequiredSection("OpenApi"); var openApiSection = configuration.GetRequiredSection("OpenApi");
var authSection = openApiSection.GetRequiredSection("Auth"); var authSection = openApiSection.GetRequiredSection("Auth");
@ -104,31 +116,42 @@ public static class CommonExtensions
/// { /// {
/// "OpenApi": { /// "OpenApi": {
/// "Endpoint: {
/// "Name":
/// },
/// "Document": { /// "Document": {
/// "Title": .. /// "Title": ..
/// "Version": .. /// "Version": ..
/// "Description": .. /// "Description": ..
/// },
/// "Auth": {
/// "ClientId": ..,
/// "AppName": ..
/// } /// }
/// } /// }
/// } /// }
var document = openApi.GetRequiredSection("Document");
var version = openApi.GetRequiredValue("Version") ?? "v1";
var version = document.GetRequiredValue("Version") ?? "v1";
options.SwaggerDoc(version, new OpenApiInfo options.SwaggerDoc(version, new OpenApiInfo
{ {
Title = openApi.GetRequiredValue("Title"),
Title = document.GetRequiredValue("Title"),
Version = version, Version = version,
Description = openApi.GetRequiredValue("Description")
Description = document.GetRequiredValue("Description")
}); });
var identityUrlExternal = configuration.GetRequiredValue("IdentityUrlExternal");
var identitySection = configuration.GetSection("Identity");
if (identitySection is null)
{
// No identity section, so no authentication open api definition
return;
}
// {
// "Identity": {
// "ExternalUrl": "http://identity",
// "Scopes": {
// "basket": "Basket API"
// }
// }
// }
var identityUrlExternal = identitySection.GetRequiredValue("ExternalUrl");
var scopes = openApi.GetRequiredSection("Scopes").AsEnumerable().ToDictionary(p => p.Key, p => p.Value); var scopes = openApi.GetRequiredSection("Scopes").AsEnumerable().ToDictionary(p => p.Key, p => p.Value);
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
@ -140,7 +163,7 @@ public static class CommonExtensions
{ {
AuthorizationUrl = new Uri($"{identityUrlExternal}/connect/authorize"), AuthorizationUrl = new Uri($"{identityUrlExternal}/connect/authorize"),
TokenUrl = new Uri($"{identityUrlExternal}/connect/token"), TokenUrl = new Uri($"{identityUrlExternal}/connect/token"),
Scopes = openApi.GetRequiredSection("Scopes").AsEnumerable().ToDictionary(p => p.Key, p => p.Value),
Scopes = scopes,
} }
} }
}); });
@ -258,7 +281,7 @@ public static class CommonExtensions
// { // {
// "EventBus": { // "EventBus": {
// "ProviderName": "ServiceBus | RabbitMQ", // "ProviderName": "ServiceBus | RabbitMQ",
// "ConnectionString": "Endpoint=sb://eshop-eventbus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..."
// "ConnectionString": "..."
// } // }
// } // }
@ -293,7 +316,7 @@ public static class CommonExtensions
// { // {
// "EventBus": { // "EventBus": {
// "ProviderName": "ServiceBus", // "ProviderName": "ServiceBus",
// "ConnectionString": "Endpoint=sb://eshop-eventbus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..."
// "ConnectionString": "..."
// "SubscriptionClientName": "eshop_event_bus" // "SubscriptionClientName": "eshop_event_bus"
// } // }
// } // }


Loading…
Cancel
Save