private void SaveSplitterSwagger(SwaggerRoot swagger, string entityName) { var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.swaggerJsonFile); var extension = Path.GetExtension(this.swaggerJsonFile); var newFileName = fileNameWithoutExtension + entityName + extension; newFileName = Path.Combine(this.outputFolder, newFileName); File.WriteAllText(newFileName, swagger.ToJson()); }
internal string GenerateForControllers(IEnumerable <Type> types) { var swagger = new SwaggerRoot { Info = _scope.Settings.Info, Host = _scope.Settings.Host, Schemes = _scope.Settings.Schemes, Paths = types .SelectMany(GeneratePaths) .ToDictionary(t => t.Item1, t => t.Item2), Definitions = _scope.SwaggerSchemas }; swagger.Security = _scope.Settings.Security; swagger.SecurityDefinitions = _scope.Settings.SecurityDefinitions; //Add default error model swagger.Definitions.Add(ErrorModel.Name, ErrorModel.Schema); return(swagger.ToJson()); }
internal string GenerateForControllers(IEnumerable <Type> types) { var swagger = new SwaggerRoot { Info = _scope.Settings.Info, Host = _scope.Settings.Host, Schemes = _scope.Settings.Schemes, Paths = types .SelectMany(GeneratePaths) .ToLookup(t => t.Item1, t => t.Item2) // for when methods for same route where in different classes .ToDictionary(g => g.Key, t => PathItem.Merge(t.ToArray())), Definitions = _scope.SwaggerSchemas, Security = _scope.Settings.Security, SecurityDefinitions = _scope.Settings.SecurityDefinitions, Produces = _scope.Settings.Produces }; swagger.Definitions.Add(ErrorModel.Name, ErrorModel.Schema); return(swagger.ToJson()); }
private void CreateSwaggerJson() { var swaggerDefinitions = this.swaggerRoot.Definitions.Keys.ToList(); foreach (var className in swaggerDefinitions) { var typeDescription = this.typeDescriptions.FirstOrDefault(t => t.CSharpName == className); Schema schema; if (this.swaggerRoot.Definitions.TryGetValue(className, out schema)) { schema.Type = "object"; schema.Properties = new Dictionary <string, Schema>(); foreach (var columnDescription in typeDescription.ColumnDescriptions) { var propertySchema = new Schema { Type = GetSwaggerType(columnDescription), Ref = GetSwaggerRef(columnDescription), Format = GetSwaggerFormat(columnDescription), }; var itemsRef = GetSwaggerItemsRef(columnDescription); var itemsType = GetSwaggerItemsType(columnDescription); if (itemsRef != null || itemsType != null) { propertySchema.Items = new Item { Ref = itemsRef, Type = itemsType }; } schema.Properties.Add(Utils.Utils.CamelCase(columnDescription.CSharpName), propertySchema); } } } var jsonFileName = Path.Combine(this.outputDirectory, "swaggerBase.json"); File.WriteAllText(jsonFileName, swaggerRoot.ToJson()); }