private static void AddInternalDocumentFilters(SwaggerDocsConfig swaggerDocsConfig)
        {
            Contract.Requires(swaggerDocsConfig != null);

            swaggerDocsConfig.DocumentFilter(() => new LimitSchemaGraphToTopLevelEntity());
            swaggerDocsConfig.DocumentFilter(() => new EnsureUniqueOperationIdsFilter());
        }
Exemple #2
0
        public static void ApplyAutoRestFilters(this SwaggerDocsConfig config, SwaggerDocsConfigExtensionsConfiguration extensionsConfiguration, object codeGenerationSettings = null)
        {
            if (codeGenerationSettings != null)
            {
                config.DocumentFilter(() => new CodeGenerationSettingsDocumentFilter(codeGenerationSettings));
            }
            if (extensionsConfiguration.ApplyEnumTypeSchemaFilter)
            {
                config.SchemaFilter(() => new EnumTypeSchemaFilter(extensionsConfiguration.EnumTypeModelAsString));
            }
            if (extensionsConfiguration.ApplyTypeFormatSchemaFilter)
            {
                config.SchemaFilter <TypeFormatSchemaFilter>();
            }
            if (extensionsConfiguration.ApplyNullableTypeSchemaFilter)
            {
                config.SchemaFilter <NullableTypeSchemaFilter>();
                if (extensionsConfiguration.ApplyNonNullableAsRequiredSchemaFilter)
                {
                    config.SchemaFilter <NonNullableAsRequiredSchemaFilter>();
                }
            }

            config.ApplyFiltersToAllSchemas();
        }
        public static void ReleaseTheTRex(this SwaggerDocsConfig config)
        {
            if (config == null)
            {
                return;
            }

            config.SchemaFilter <TRexSchemaFilter>();
            config.OperationFilter <TRexOperationFilter>();
            config.DocumentFilter <TRexDocumentFilter>();
        }
        public static SwaggerDocsConfig UseMiruken(
            this SwaggerDocsConfig config,
            Action <SwaggerMediatesFilter> configure = null)
        {
            var documentFilter = new SwaggerMediatesFilter();

            configure?.Invoke(documentFilter);
            config.SchemaId(SwaggerMediatesFilter.ModelToSchemaId);
            config.DocumentFilter(() => documentFilter);
            config.IncludeApiComments("Miruken.Mediate");
            return(config);
        }
        /// <summary>
        /// Confgures Swaschbuckle to provide additional metadata in methods which use FromQuery attribute so the API provided by DotVVM API generator is easier to use.
        /// </summary>
        public static void EnableDotvvmIntegration(this SwaggerDocsConfig options, Action <DotvvmApiOptions> configureOptions = null)
        {
            var apiOptions = new DotvvmApiOptions();

            configureOptions?.Invoke(apiOptions);

            var propertySerialization = new DefaultPropertySerialization();

            options.OperationFilter(() => new AddAsObjectAnnotationOperationFilter(propertySerialization));
            options.SchemaFilter(() => new AddTypeToModelSchemaFilter());
            options.DocumentFilter(() => new HandleKnownTypesDocumentFilter(apiOptions, propertySerialization));
        }
Exemple #6
0
        internal static void Configure(HttpConfiguration config)
        {
            var swConfig = new SwaggerDocsConfig();

            swConfig.RootUrl(m => GetOwinAppBasePath(m.GetOwinContext()));
            swConfig.OperationFilter(() => new ODataResponcesOperationFilter());
            swConfig.OperationFilter(() => new AddExtendedMetadataOperationFilter());
            swConfig.DocumentFilter(() => new ODataRemoveNotAllowedOperationFilter());
            swConfig.SingleApiVersion("v2", "BlackCoffeeTalk oData Services");
            swConfig.CustomProvider(defaultProvider => new ODataSwaggerProvider(defaultProvider, swConfig, config)
                                    .Configure(odatasw => {
                odatasw.EnableSwaggerRequestCaching();
                odatasw.IncludeNavigationProperties();
            }));
            swConfig.ApiKey("Token")
            .Description("Filling bearer token.")
            .Name("Authorization")
            .In("header");

            config.Routes.MapHttpRoute("swagger_docs", "", new { apiVersion = "v2" }, null, new SwaggerDocsHandler(swConfig));
        }
Exemple #7
0
 /// <summary>
 /// Adds document filters that will be applied to SwaggerDocuments built from WebApi and OData ApiExplorers.
 /// </summary>
 private void AddGlobalDocumentFilters()
 {
     _swaggerDocsConfig.DocumentFilter <EnsureUniqueOperationIdsFilter>();
 }
        /// <summary>
        /// Adds document filters that will be applied to SwaggerDocuments built from WebApi and OData ApiExplorers.
        /// </summary>
        /// <param name="swaggerDocsConfig">The swagger docs configuration.</param>
        private static void AddGlobalDocumentFilters(SwaggerDocsConfig swaggerDocsConfig)
        {
            Contract.Requires(swaggerDocsConfig != null);

            swaggerDocsConfig.DocumentFilter(() => new EnsureUniqueOperationIdsFilter());
        }
Exemple #9
0
 /// <summary>
 /// Use To filter documents(Endpoints) depending on auth(Authorized/Unauthorized/Scope claim ... etc).
 /// </summary>
 /// <param name="swaggerDocsConfig">
 /// The swagger document config
 /// </param>
 /// <param name="apiFilter">
 /// Filter action
 /// </param>
 public static void EnableAuthorizationFilter(this SwaggerDocsConfig swaggerDocsConfig, Func <ApiDescription, bool> apiFilter) =>
 swaggerDocsConfig.DocumentFilter(() => SwaggerAuthorizationFilter.CreateWithAuthorizationFilter(apiFilter));
 /// <summary>
 /// Adds the standard AuthToken endpoint documentation.
 /// </summary>
 /// <param name="c"></param>
 public static void AddStandardAuthTokenDocumentation(this SwaggerDocsConfig c)
 {
     c.DocumentFilter <AuthTokenOperation>();
 }
 /// <summary>
 /// Add a sub-classed version of the <see cref="AuthTokenOperation" /> to customize the AuthToken endpoint documentation.
 /// </summary>
 public static void AddAuthTokenDocumentation <TDocumentFilter>(this SwaggerDocsConfig c)
     where TDocumentFilter : AuthTokenOperation, new()
 {
     c.DocumentFilter <TDocumentFilter>();
 }