Ejemplo n.º 1
0
        public static void ForAll(Assembly assembly, string servicePrefix)
        {
            var generator     = new AssemblyTypeToSwaggerGenerator(assembly.CodeBase);
            var allClassNames = generator.GetAbpServiceBaseClasses();

            foreach (var item in allClassNames)
            {
                var service = generator.FromAbpApplicationMoudleAssembly(item, UrlTemplate.Replace("{servicePrefix}", servicePrefix));
                if (service == null)
                {
                    continue;
                }

                var converter = new SwaggerOperationsExtendedConverter(typeof(SwaggerOperationsExtended));

                var jsontext = service.ToJson(converter);

                //gen json file
                if (HttpContext.Current != null)
                {
                    Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/apidoc/"));
                    var file = HttpContext.Current.Server.MapPath("~/apidoc/") + "/" + item + ".js";
                    if (File.Exists(file))
                    {
                        File.Delete(file);
                    }

                    var writer = File.CreateText(file);
                    writer.Write(jsontext);
                    writer.Close();
                }
            }
        }
        /// <summary>Converts the description object to JSON.</summary>
        /// <returns>The JSON string.</returns>
        public new string ToJson()
        {
            var settings = new JsonSerializerSettings
            {
                PreserveReferencesHandling = PreserveReferencesHandling.None,
                Formatting = Formatting.Indented
            };

            var swaggerOperationsConverter = new SwaggerOperationsExtendedConverter(typeof(SwaggerOperationsExtended));
            var jsonSchema4Converter = new JsonSchema4Converter(typeof (JsonSchema4));

            settings.Converters.Add(swaggerOperationsConverter);
            settings.Converters.Add(jsonSchema4Converter);

            GenerateOperationIds();

            JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this);
            JsonSchemaReferenceUtilities.UpdateSchemaReferences(this);

            var data = JsonConvert.SerializeObject(this, settings);

            return JsonSchemaReferenceUtilities.ConvertPropertyReferences(data);
        }