/// <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.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))); })); return(doc); }
/// <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.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.SchemaId(type => type.AssemblyQualifiedName); doc.GroupActionsBy(apiDesc => $"[{((ODataRoute)apiDesc.Route).RoutePrefix}] {apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName}"); return(doc); }
/// <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) { if (doc == null) throw new ArgumentNullException(nameof(doc)); if (webApiConfig == null) throw new ArgumentNullException(nameof(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; }