Example #1
0
        public string Gen(SwaggerDocument service, SwaggerToolSettings setting)
        {
            var settings = new SwaggerToCSharpClientGeneratorSettings()
            {
                ClassName = setting.CSharpGen.ClassName,
                CSharpGeneratorSettings = { Namespace = setting.CSharpGen.Namespace }
            };
            var generator = new SwaggerToCSharpClientGenerator(service, settings);
            var code      = generator.GenerateFile();

            return(code);
        }
Example #2
0
        public string Gen(SwaggerDocument service, string root, SwaggerToolSettings setting)
        {
            var collectionId = PostMan.GetId();
            var apis         = service.Operations;
            var requests     = GetPostmanRequests(apis, collectionId, root, setting);
            var collection   = new PostmanCollection
            {
                id          = collectionId,
                name        = setting.PostmanGen.name,
                description = "",
                //在文件夹出现的order Id不能出现该order中
                // order = requests.Select(x => x.id).ToList(),
                timestamp = DateTime.Now.DateTimeToStamp(),
                requests  = requests
            };

            //按照tag分组
            List <Postfolder> folders = new List <Postfolder>();
            var groups = requests.GroupBy(s => s.tagname);

            foreach (var item in groups)
            {
                Postfolder floder = new Postfolder();
                floder.id = PostMan.GetId();
                if (service.Tags != null)
                {
                    var desc = service.Tags.Where(p => p.Name == item.Key).FirstOrDefault();
                    if (desc != null)
                    {
                        floder.name = desc.Description;
                    }
                    else
                    {
                        floder.name = item.Key;
                    }
                }
                else
                {
                    floder.name = item.Key;
                }
                floder.order = requests.Where(p => p.tagname == item.Key).Select(s => s.id).ToList();

                foreach (var req in requests.Where(p => p.tagname == item.Key).ToList())
                {
                    req.folder = floder.id;
                }
                folders.Add(floder);
            }
            collection.folders = folders;
            return(JsonConvert.SerializeObject(collection));
        }
Example #3
0
        public string Gen(SwaggerDocument service, SwaggerToolSettings setting, TypeScriptTemplate Template)
        {
            var settings = new SwaggerToTypeScriptClientGeneratorSettings
            {
                ClassName   = setting.TypeScriptGen.ClassName,
                Template    = Template,
                PromiseType = PromiseType.Promise,
                TypeScriptGeneratorSettings = { ModuleName = setting.TypeScriptGen.ModuleName }
            };


            var generator = new SwaggerToTypeScriptClientGenerator(service, settings);
            var code      = generator.GenerateFile();

            return(code);
        }
Example #4
0
        public string Gen(string type, SwaggerDocument service, SwaggerToolSettings setting)
        {
            switch (type)
            {
            case "CSharp":
            { return(new CSharpGen().Gen(service, setting)); }

            case "JQueryCallbacks":
            case "JQueryPromises":
            case "AngularJS":
            case "Angular2":
            {
                return(new TypeScriptGen().Gen(service, setting, (TypeScriptTemplate)Enum.Parse(typeof(TypeScriptTemplate), type)));
            }

            default:
                return("Don't support  " + type + " Keyword");
            }
        }
Example #5
0
        private List <PostmanRequest> GetPostmanRequests(IEnumerable <SwaggerOperationDescription> apis, string collectionId, string root, SwaggerToolSettings setting)
        {
            List <PostmanRequest> re = new List <PostmanRequest>();

            foreach (var item in apis)
            {
                var p = new PostmanRequest
                {
                    id                = PostMan.GetId(),
                    name              = item.Operation.Summary,
                    description       = item.Operation.Summary,
                    descriptionFormat = "html",
                    headers           = setting.PostmanGen.headers,
                    method            = item.Method.ToString().ToUpper(),
                    pathVariables     = new Dictionary <string, string>(),
                    url               = root + item.Path,
                    collectionId      = collectionId,
                    tagname           = item.Operation.Tags.FirstOrDefault()
                };
                var datalist = item.Operation.Parameters
                               .Where(s => s.Kind == SwaggerParameterKind.Query)
                               .Select(s => s.Name + "={{" + s.Name + "}}")
                               .ToList();

                if (datalist.Count > 0)
                {
                    p.dataMode = "params";
                    //URL Query
                    p.url += "/?" + string.Join("&", datalist);
                }
                var rawdata = item.Operation.Parameters
                              .Where(s => s.Kind == SwaggerParameterKind.Body)
                              .SingleOrDefault();
                if (rawdata != null)
                {
                    p.dataMode    = "raw";
                    p.rawModeData = new Schema4Json().ToSampleJson(rawdata.ActualSchema);
                    //美化
                    p.rawModeData = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(p.rawModeData), Formatting.Indented);

                    if (string.IsNullOrEmpty(p.headers) || (!string.IsNullOrEmpty(p.headers) && !p.headers.Contains("Content-Type: application/json\n")))
                    {
                        p.headers = "Content-Type: application/json\n" + p.headers ?? "";
                    }
                }


                re.Add(p);
            }
            return(re);
        }