示例#1
0
        static void Main(string[] args)
        {
            var currentFolder = Directory.GetCurrentDirectory();
            var pathToDll     = Path.Combine(currentFolder, "..", "ContactsList/bin/Debug/netcoreapp1.1/AspNetCoreSpa.dll");
            var settings      = new WebApiAssemblyToSwaggerGeneratorSettings
            {
                AssemblyPaths               = new string[] { pathToDll },
                DefaultUrlTemplate          = "api/{controller}/{action}/{id}",
                DefaultPropertyNameHandling = NJsonSchema.PropertyNameHandling.CamelCase
            };

            //var excluded = new string[] { "Manage", "Base", "Home" };
            var generator  = new WebApiAssemblyToSwaggerGenerator(settings);
            var allClasses = generator.GetControllerClasses();
            //var necessaryClasses = allClasses.Except(allClasses.Where(x => excluded.Any(y => x.Contains(y)))
            //    ).ToArray();
            var controllersToGenerate = new string[] { "File" };
            var necessaryClasses      = allClasses.Where(x => controllersToGenerate.Any(y => x.Contains(y)))
                                        .ToArray();
            var document = generator.GenerateForControllersAsync(necessaryClasses).Result;

            var settingsForClientApiGeneration = new SwaggerToTypeScriptClientGeneratorSettings
            {
                ClassName = "{controller}Client",
                Template  = TypeScriptTemplate.Angular
            };

            var generatorApi = new SwaggerToTypeScriptClientGenerator(document, settingsForClientApiGeneration);
            var code         = generatorApi.GenerateFile();

            code = ImproveGeneration(code);
            File.WriteAllText(Path.Combine(currentFolder, "..", "ContactsList/Client/app", "apiDefinitions.ts"), code);
        }
        public async Task When_controller_type_is_not_found_then_type_load_exception_is_thrown()
        {
            //// Arrange
            var settings = new WebApiAssemblyToSwaggerGeneratorSettings
            {
                AssemblyPaths      = new[] { @"./NSwag.SwaggerGeneration.WebApi.Tests.dll" },
                DefaultUrlTemplate = "api/{controller}/{action}/{id}"
            };

            var generator = new WebApiAssemblyToSwaggerGenerator(settings);

            //// Act
            var document = await generator.GenerateForControllersAsync(new[] { "NonExistingClass" }); // Should throw exception

            //// Assert
        }