public class CustomGlobalTagsExtension : IDocumentFilter
{
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
var customTags = new List<OpenApiTag>
{
new OpenApiTag
{
Name = "$tag-name",
Description = "$tag-description"
},
};
[Link] = customTags;
}
}
public class CustomOperationFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
// Set the operation summary, description, and response
if ([Link] == "GET")
{
[Link] = "Get Jira Proxy";
[Link] = "Get Jira Proxy";
[Link] = "GetJiraProxy";
}
else if ([Link] == "POST")
{
[Link] = "Post Jira Proxy";
[Link] = "Post Jira Proxy";
[Link] = "PostJiraProxy";
}
else if ([Link] == "PUT")
{
[Link] = "Put Jira Proxy";
[Link] = "Put Jira Proxy";
[Link] = "PutJiraProxy";
}
else if ([Link] == "DELETE")
{
[Link] = "Delete Jira Proxy";
[Link] = "Delete Jira Proxy";
[Link] = "DeleteJiraProxy";
}
[Link]();
[Link]("200", new OpenApiResponse
{
Description = "OK",
Content = new Dictionary<string, OpenApiMediaType>
{
{
"application/json", new OpenApiMediaType
{
Schema = new OpenApiSchema
{
Type = "object"
}
}
}
}
});
[Link]();
[Link] = null;
[Link] = new List<OpenApiTag>();
}
}
public static class SwaggerConfig
{
public static void AddSwagger(IServiceCollection services)
{
[Link](c =>
{
[Link]("v1", new OpenApiInfo
{
Version = "1.0",
Title = "$title",
Description = "$description",
Contact = new OpenApiContact
{
Name = "$name",
Email = "$email",
Url = new Uri("[Link]
},
License = new OpenApiLicense
{
Name = "Maersk",
Url = new Uri("[Link]
[Link]"),
},
Extensions = new Dictionary<string, IOpenApiExtension>
{
["x-visibility"] = new OpenApiString("Internal"),
["x-technical-owner-email"] = new
OpenApiString("$technicalOwnerEmail"),
["x-published-for"] = new OpenApiString("Internal"),
["x-release-notes"] = new OpenApiString(""),
["x-support-l1"] = new OpenApiString(""),
["x-support-l2"] = new OpenApiString(""),
["x-support-l3"] = new OpenApiString(""),
["x-supply-chain-area"] = new OpenApiArray
{
new OpenApiString("Supply Chain Management")
},
["x-proxy-name"] = new OpenApiString("api-
[Link]"),
["x-product-owner-email"] = new
OpenApiString("$productOwnerEmail"),
["x-platform"] = new OpenApiString("Supply Chain"),
["x-oas-href"] = new OpenApiString("$href"),
["x-layer"] = new OpenApiString("System"),
["x-docs-href"] = new OpenApiString(""),
["x-deprecated-by"] = new OpenApiString("NA"),
["x-category"] = new OpenApiString("Operational"),
["x-business-owner-email"] = new
OpenApiString("$businessOwnerEmail"),
["x-brand"] = new OpenApiString(""),
["x-back-end-systems"] = new OpenApiArray
{
new OpenApiString("$backEndSystems")
},
["x-avg-data-currency-mins"] = new OpenApiInteger(0),
["x-availability-status"] = new OpenApiString("General
Availability"),
["x-api-platform"] = new OpenApiString(""),
["x-api-consumers"] = new OpenApiArray
{
new OpenApiString("CsHub")
}
}
});
[Link](new OpenApiServer
{
Url = "$url-server1",
Description = "Development"
});
[Link](new OpenApiServer
{
Url = "$url-server2",
Description = "Test"
});
[Link]<CustomGlobalTagsExtension>();
[Link]<CustomOperationFilter>();
});
}
}
foreach (var path in [Link])
{
foreach (var operation in [Link])
{
[Link] = new List<OpenApiTag> { globalTag };
}
}