コード例 #1
0
        public static void Register(JsonSerializerSettings jsonSerializerSettings)
        {
            if (Api.DocsSettings.Enabled == true)
            {
                //var docsDescription = AppDomain.CurrentDomain.BaseDirectory + "/Docs/DOCS-DESCRIPTION.md";
                //
                //if (File.Exists(docsDescription))
                //{
                //    string readme = File.ReadAllText(docsDescription);
                //}

                var version = (string.IsNullOrWhiteSpace(Api.ApiSettings.Version))
                    ? "v1"
                    : Api.ApiSettings.Version;

                var contact = new Contact()
                {
                    EmailAddress = Api.DocsSettings.AuthorEmail,
                    Name         = Api.DocsSettings.AuthorName,
                    Url          = Api.ApiSettings.AppUrl
                };

                SwaggerConfig.ResourceListingPath    = BaseModule.GetModulePath();
                SwaggerConfig.JsonSerializerSettings = jsonSerializerSettings;
                SwaggerMetadataProvider.SetInfo(Api.DocsSettings.Title, version, Api.DocsSettings.Description, contact, Api.DocsSettings.TermsOfService);
                SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true;
                SwaggerTypeMapping.AddTypeMapping(typeof(Guid), typeof(string));
            }
        }
コード例 #2
0
        private void InitializeSwaggerMetadata()
        {
            SwaggerMetadataProvider.SetInfo("Fabric Authorization API", "v1",
                                            "Fabric.Authorization contains a set of APIs that allow client applications to manage roles and permissions for users.");

            var securitySchemeBuilder = new Oauth2SecuritySchemeBuilder();

            securitySchemeBuilder.Flow(Oauth2Flows.Implicit);
            securitySchemeBuilder.Description("Authentication with Fabric.Identity");
            securitySchemeBuilder.AuthorizationUrl(@"http://localhost:5001");
            securitySchemeBuilder.Scope("fabric/authorization.read", "Grants read access to fabric.authorization resources.");
            securitySchemeBuilder.Scope("fabric/authorization.write", "Grants write access to fabric.authorization resources.");
            securitySchemeBuilder.Scope("fabric/authorization.manageclients", "Grants 'manage clients' access to fabric.authorization resources.");
            try
            {
                SwaggerMetadataProvider.SetSecuritySchemeBuilder(securitySchemeBuilder, "fabric.identity");
            }
            catch (ArgumentException ex)
            {
                _logger.Warning("Error configuring Swagger Security Scheme. {exceptionMessage}", ex.Message);
            }
            catch (NullReferenceException ex)
            {
                _logger.Warning("Error configuring Swagger Security Scheme: {exceptionMessage", ex.Message);
            }
        }
コード例 #3
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo("Nancy Swagger Example", "v0", "Our awesome service", new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            base.ApplicationStartup(container, pipelines);
        }
コード例 #4
0
        protected override void ConfigureApplicationContainer(ILifetimeScope container)
        {
            SwaggerMetadataProvider.SetInfo("Nancy Swagger w/ AutoFac Example", "v0", "Our awesome service", new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true;
            this.ApplicationPipelines.AfterRequest.AddItemToEndOfPipeline(x => x.Response.Headers.Add("Access-Control-Allow-Origin", "*"));
        }
コード例 #5
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            base.ApplicationStartup(container, pipelines);

            SwaggerMetadataProvider.SetInfo(
                "LiquidProjections",
                Assembly.GetExecutingAssembly().GetName().Version.ToString(),
                "Provides statistics about running projectors"
                );
        }
コード例 #6
0
        private static void InitializeSwaggerMetadata()
        {
            SwaggerMetadataProvider.SetInfo("Fabric Authorization API", "v1",
                                            "Fabric.Authorization contains a set of APIs that allow client applications to manage roles and permissions for users.");

            var securitySchemeBuilder = new Oauth2SecuritySchemeBuilder();

            securitySchemeBuilder.Flow(Oauth2Flows.Implicit);
            securitySchemeBuilder.Description("Authentication with Fabric.Identity");
            securitySchemeBuilder.AuthorizationUrl(@"http://localhost:5001");
            securitySchemeBuilder.Scope("fabric/authorization.read", "Grants read access to fabric.authorization resources.");
            securitySchemeBuilder.Scope("fabric/authorization.write", "Grants write access to fabric.authorization resources.");
            securitySchemeBuilder.Scope("fabric/authorization.manageclients", "Grants 'manage clients' access to fabric.authorization resources.");
            SwaggerMetadataProvider.SetSecuritySchemeBuilder(securitySchemeBuilder, "fabric.identity");
        }
コード例 #7
0
ファイル: Bootstrapper.cs プロジェクト: secana/RestFS
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo(
                "RestFs",                                 //Name
                "v1",                                     //Version
                "REST API abstraction for a file system", //Description
                new Contact {
                Url = "https://github.com/secana/RestFS"
            }                                                          //Contact Info
                );

            container.Register(_logger);
            container.Register(_storage);
            base.ApplicationStartup(container, pipelines);
        }
コード例 #8
0
        private void ConfigureSwagger()
        {
            SwaggerMetadataProvider.SetInfo(
                "Shared Terminology Data Services",
                TerminologyVersion.SemanticVersion.ToString(),
                "Shared Terminology Data Services - Fabric.Terminology.API",
                new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            if (!this.appConfig.SwaggerRootBasePath.IsNullOrWhiteSpace())
            {
                SwaggerMetadataProvider.SetSwaggerRoot(basePath: this.appConfig.SwaggerRootBasePath);
            }
        }
コード例 #9
0
        protected override void ApplicationStartup(ILifetimeScope container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo("Reporting service", "v2", "Reporting service docs", new Contact()
            {
                Name = "Reportserver"
            });

            container.Update(builder => builder
                             .RegisterType <SwaggerAnnotationsProvider>()
                             .As <ISwaggerMetadataProvider>());
            Global = Container;
            ILogic log = Container.Resolve <ILogic>();

            log.Start();

            SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true;
        }
コード例 #10
0
        private static void InitSwagger(IAppConfiguration config)
        {
            SwaggerMetadataProvider.SetInfo(
                config["SvcMetaTitle"],
                config["SvcMetaVer"],
                $"[ Base URL: {config["HostUrl"]} ]",
                new Contact {
                EmailAddress = config["SvcMetaContact"]
            });

            SwaggerConfig.ResourceListingPath = config["SwaggerResourceListingPath"];

            SwaggerTypeMapping.AddTypeMapping(typeof(DateTime), typeof(string));
            SwaggerTypeMapping.AddTypeMapping(typeof(DateTime?), typeof(string));
            SwaggerTypeMapping.AddTypeMapping(typeof(TimeSpan), typeof(string));
            SwaggerTypeMapping.AddTypeMapping(typeof(TimeSpan?), typeof(string));
            SwaggerTypeMapping.AddTypeMapping(typeof(Guid), typeof(string));
        }
コード例 #11
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo("Nancy Swagger Example", "v0", "Our awesome service", new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            SwaggerMetadataProvider.SetSwaggerRoot(
                externalDocumentation: new ExternalDocumentation {
                Description = "GitHub",
                Url         = "https://github.com/yahehe/Nancy.Swagger"
            },
                schemes: new[] { Schemes.Http }
                );

            base.ApplicationStartup(container, pipelines);

            SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true;
        }
コード例 #12
0
        protected override void ApplicationStartup(ILifetimeScope applicationContainer, IPipelines pipelines)
        {
            // Add swagger info
            SwaggerMetadataProvider.SetInfo("Domain0", "v1", "Domain0 JWT auth service", new Contact
            {
                Name = "domain0"
            });

            var modelCatalog = applicationContainer.Resolve <ISwaggerModelCatalog>();

            modelCatalog.AddModel <IEnumerable <ModelValidationError> >();
            modelCatalog.AddModel <ModelValidationError>();
            modelCatalog.AddModel <RolePermission>();
            modelCatalog.AddModel <UserPermission>();
            modelCatalog.AddModel <UserRole>();

            SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true;
            applicationContainer.Update(builder =>
            {
                builder
                .RegisterType <SwaggerAnnotationsProvider>()
                .As <ISwaggerMetadataProvider>();

                builder
                .RegisterInstance(new MemoryCache(
                                      new MemoryCacheOptions
                {
                    ExpirationScanFrequency = TimeSpan.FromMinutes(5),
                    SizeLimit = thresholdSettings.CacheLimitMB * 1024 * 1024
                }))
                .As <IMemoryCache>()
                .SingleInstance();


                builder
                .RegisterType <RequestThrottleManager>()
                .As <IRequestThrottleManager>()
                .SingleInstance();
            });

            pipelines.EnableCors();
        }
コード例 #13
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo("Pdf Reporting Poc", "v0.9.2", "Provides pdf reporting functionality", new Contact()
            {
                EmailAddress = "*****@*****.**",
                Name         = "G-Team"
            }, "#");

            container.Register(typeof(IBarCodes), typeof(BarCodes));
            container.Register(typeof(ICreateBarCodeUseCase), typeof(CreateBarCodeUseCase));
            container.Register(typeof(IPopulatePdfUseCase), typeof(PopulatePdfUseCase));
            container.Register(typeof(IRenderReportUseCase), typeof(RenderReportUseCase));
            container.Register(typeof(IFileSystemProvider), typeof(FileSystemProvider));
            container.Register(typeof(IPdfOperations), typeof(PdfOperations));
            container.Register(typeof(IBarCodeAttachmentOperations), typeof(BarCodeAttachmentOperations));
            container.Register(typeof(IBarCodeAttachmentOperations), typeof(BarCodeAttachmentOperations));
            container.Register(typeof(IAttachBarCodeUseCase), typeof(AttachBarCodeUseCase));

            base.ApplicationStartup(container, pipelines);
        }
コード例 #14
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            base.ApplicationStartup(container, pipelines);
            SwaggerMetadataProvider.SetInfo("IDP Job APIs", "v0.1", "Our job service", new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            pipelines.AfterRequest.AddItemToEndOfPipeline(x => x.Response.Headers.Add("Access-Control-Allow-Origin", "*"));

            CookieBasedSessions.Enable(pipelines);

            pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(
                                                    container.Resolve <IUserValidator>(),
                                                    "IDPJobManager"));

            ResourceViewLocationProvider.RootNamespaces.Add(Assembly.GetExecutingAssembly(), "IDPJobManager.Web.Views");

            ResourceViewLocationProvider.Ignore.Add(typeof(Nancy.ViewEngines.Razor.RazorViewEngine).Assembly);
        }
コード例 #15
0
        protected override ILifetimeScope GetApplicationContainer()
        {
            SwaggerMetadataProvider.SetInfo(
                "Configuration store Api documentation",
                "v0.1",
                "An Api to manage the configuration values for your application",
                new Contact
            {
                Name         = "Carlos Vicente",
                EmailAddress = "*****@*****.**"
            });

            ApplicationPipelines
            .AfterRequest
            .AddItemToEndOfPipeline(x => x.Response.Headers.Add("Access-Control-Allow-Origin", "*"));

            var builder = new ContainerBuilder();

            builder.RegisterModule <ConfigStoreModule>();
            builder.RegisterModule <PersistenceModule>();
            builder.RegisterModule <JsonNetModule>();

            return(builder.Build());
        }
コード例 #16
0
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            this.Conventions.ViewLocationConventions.Add((viewName, model, context) =>
            {
                return(string.Concat("ui/", viewName));
            });

            SwaggerMetadataProvider.SetInfo(
                title: "OmegaGraf",
                version: Globals.Config.Version,
                desc: "OmegaGraf-Compose",
                contact: new Contact()
            {
                EmailAddress = "*****@*****.**",
                Name         = "Jacob Colvin"
            }
                );

            var securitySchemeBuilder = new ApiKeySecuritySchemeBuilder();

            securitySchemeBuilder.IsInHeader();
            securitySchemeBuilder.Name("Authorization");
            SwaggerMetadataProvider.SetSecuritySchemeBuilder(securitySchemeBuilder, "ApiKey");

            SwaggerMetadataProvider.SetSwaggerRoot(
                externalDocumentation: new ExternalDocumentation
            {
                Description = "GitHub",
                Url         = "https://github.com/OmegaGraf/OmegaGraf"
            },
                schemes: new[] { Schemes.Http, Schemes.Https },
                produces: new[] { "application/json" }
                );

            base.ApplicationStartup(container, pipelines);
        }
コード例 #17
0
        protected override void ApplicationStartup([NotNull] TinyIoCContainer container, [NotNull] IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo(
                "Shared Terminology Data Services",
                TerminologyVersion.SemanticVersion.ToString(),
                "Shared Terminology Data Services - Fabric.Terminology.API",
                new Contact()
            {
                EmailAddress = "*****@*****.**"
            });

            base.ApplicationStartup(container, pipelines);

            pipelines.OnError.AddItemToEndOfPipeline(
                (ctx, ex) =>
            {
                this.logger.Error(
                    ex,
                    "Unhandled error on request: @{Url}. Error Message: @{Message}",
                    ctx.Request.Url,
                    ex.Message);
                return(ctx.Response);
            });
        }
コード例 #18
0
        private void InitializeSwaggerMetadata()
        {
            SwaggerMetadataProvider.SetInfo("Fabric Identity Provider Search Service", "v1",
                                            "Fabric.IdentityProviderSearchService provides an API for searching identity providers.");

            var securitySchemeBuilder = new Oauth2SecuritySchemeBuilder();

            securitySchemeBuilder.Flow(Oauth2Flows.Implicit);
            securitySchemeBuilder.Description("Authentication with Fabric.Identity");
            securitySchemeBuilder.AuthorizationUrl(@"http://localhost:5001");
            securitySchemeBuilder.Scope(Scopes.SearchPrincipalsScope, "Grants access to search api");
            try
            {
                SwaggerMetadataProvider.SetSecuritySchemeBuilder(securitySchemeBuilder, "fabric.identityprovidersearchservice");
            }
            catch (ArgumentException ex)
            {
                _logger.Warning("Error configuring Swagger Security Scheme. {exceptionMessage}", ex.Message);
            }
            catch (NullReferenceException ex)
            {
                _logger.Warning("Error configuring Swagger Security Scheme: {exceptionMessage", ex.Message);
            }
        }
        protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
        {
            SwaggerMetadataProvider.SetInfo("Nancy Swagger Example", "v1.0.0", "Example REST web service");

            base.ApplicationStartup(container, pipelines);
        }
コード例 #20
0
 public DemoNancyServiceBootstrapper() : base()
 {
     SwaggerMetadataProvider.SetInfo("Cimpress.Nancy.Swagger.Demo", "v0", "A test swagger document");
 }