コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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;
        }