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; }
public string Gen(SwaggerDocument service, SwaggerToolSettings setting) { var settings = new SwaggerToCSharpClientGeneratorSettings { ClassName = setting.CSharpGen.ClassName, CSharpGeneratorSettings=new NJsonSchema.CodeGeneration.CSharp.CSharpGeneratorSettings() { Namespace= setting.CSharpGen.Namespace} }; var generator = new SwaggerToCSharpClientGenerator(service, settings); var code = generator.GenerateFile(); return code; }
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); }
public string Gen(SwaggerDocument service, SwaggerToolSettings setting, TypeScriptTemplate Template) { var settings = new SwaggerToTypeScriptClientGeneratorSettings { ClassName =setting.TypeScriptGen.ClassName, Template = Template, PromiseType=PromiseType.Promise, TypeScriptGeneratorSettings=new NJsonSchema.CodeGeneration.TypeScript.TypeScriptGeneratorSettings() { ModuleName= setting.TypeScriptGen.ModuleName } }; var generator = new SwaggerToTypeScriptClientGenerator(service, settings); var code = generator.GenerateFile(); return code; }
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"; } }