public void Apply(Swashbuckle.Application.SwaggerDocsConfig c) { c.ApiKey(Key) .Name(Name) .Description(Description) .In(In); c.DocumentFilter(() => this); c.OperationFilter(() => this); }
/// <summary> /// Calls <see cref="OpenApiExtensions.ApplyDefaultODataConfig(SwaggerDocsConfig, HttpConfiguration)"/> /// | Ignores ODataQueryOptions parameter type /// | Uses <see cref="ODataSwaggerProvider"/> /// </summary> public static SwaggerDocsConfig ApplyDefaultODataConfig(this SwaggerDocsConfig doc, HttpConfiguration webApiConfig) { doc.DocumentFilter <RemoveDefaultODataNamespaceFromSwaggerDocumentFilter>(); doc.ApplyDefaultApiConfig(webApiConfig); doc.OperationFilter <OpenApiIgnoreParameterTypeOperationFilter <ODataQueryOptions> >(); doc.CustomProvider(defaultProvider => new ODataSwaggerProvider(defaultProvider, doc, webApiConfig).Configure(odataConfig => { odataConfig.EnableSwaggerRequestCaching(); odataConfig.IncludeNavigationProperties(); odataConfig.SetAssembliesResolver((System.Web.Http.Dispatcher.IAssembliesResolver)webApiConfig.DependencyResolver.GetService(typeof(System.Web.Http.Dispatcher.IAssembliesResolver))); })); doc.GroupActionsBy(apiDesc => $"[{((ODataRoute)apiDesc.Route).RoutePrefix}] {apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName}"); return(doc); }
public static SwaggerDocsConfig VersioningSwaggerDoc(this SwaggerDocsConfig config, VersionedApiExplorer apiExplorer, string docTitleFormat, string versionParamName) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (apiExplorer == null) { throw new ArgumentNullException(nameof(apiExplorer)); } if (string.IsNullOrWhiteSpace(docTitleFormat)) { throw new ArgumentNullException(nameof(docTitleFormat)); } if (string.IsNullOrWhiteSpace(versionParamName)) { throw new ArgumentNullException(nameof(versionParamName)); } config.MultipleApiVersions( (apiDescription, version) => apiDescription.GetGroupName() == version, info => { foreach (var group in apiExplorer.ApiDescriptions) { info.Version(group.Name, string.Format(docTitleFormat, group.ApiVersion)); } }); config.OperationFilter(() => new RemoveVersionParameters(versionParamName)); config.DocumentFilter(() => new SetVersionInPaths(versionParamName)); return(config); }