public ResourceDetails GetResouceDetails(string groupPath) { var swaggerSpec = new ResourceDetails { swaggerVersion = "1.2", apiVersion = Assembly.GetCallingAssembly().GetName().Version.ToString(), apis = new List<ApiDetails>(), resourcePath = "/", basePath = "/" }; var groupOperations = Operations().Where(x => x.Group.Path.Equals(groupPath, StringComparison.InvariantCultureIgnoreCase)); var typeMapper = new TypeMapper(); foreach (var operationMetadata in groupOperations) { var mappedReturnType = typeMapper.Register(operationMetadata.ReturnType); var op = new Operation { method = operationMetadata.HttpVerb, nickname = operationMetadata.Nickname ?? "", notes = operationMetadata.Notes ?? "", type = mappedReturnType.Type, items = mappedReturnType.Items, summary = operationMetadata.Summary ?? "", parameters = new List<Parameter>(), responseMessages = new List<Responsemessage>() }; foreach (var header in SwaggerGenerator.Configuration.Headers) { op.parameters.Add(new Parameter { paramType = "header", name = header.Name, required = true, description = header.SuggestedValue, type = "string", minimum = 1, maximum = 1 }); } foreach (var param in operationMetadata.InputParameters) { var swagParam = typeMapper.Map(param); swagParam.paramType = param.LocationType.ToString().ToLower(); op.parameters.Add(swagParam); } foreach (var code in operationMetadata.ResponseCodes) { op.responseMessages.Add(new Responsemessage {code = code.StatusCode, message = code.Description}); } swaggerSpec.apis.Add(new ApiDetails { description = operationMetadata.Summary, path = operationMetadata.UriParser.Path, operations = new List<Operation> {op} }); } foreach (var item in typeMapper.Models) { swaggerSpec.models.Add(item.id, item); } return swaggerSpec; }
public ResourceDetails GetResouceDetails(string groupPath) { var swaggerSpec = new ResourceDetails { swaggerVersion = "1.2", apiVersion = Assembly.GetCallingAssembly().GetName().Version.ToString(), apis = new List <ApiDetails>(), resourcePath = "/", basePath = "/" }; var groupOperations = Operations().Where(x => x.Group.Path.Equals(groupPath, StringComparison.InvariantCultureIgnoreCase)); var typeMapper = new TypeMapper(); foreach (var operationMetadata in groupOperations) { var mappedReturnType = typeMapper.Register(operationMetadata.ReturnType); var op = new Operation { method = operationMetadata.HttpVerb, nickname = operationMetadata.Nickname ?? "", notes = operationMetadata.Notes ?? "", type = mappedReturnType.Type, items = mappedReturnType.Items, summary = operationMetadata.Summary ?? "", parameters = new List <Parameter>(), responseMessages = new List <Responsemessage>() }; foreach (var header in SwaggerGenerator.Configuration.Headers) { op.parameters.Add(new Parameter { paramType = "header", name = header.Name, required = true, description = header.SuggestedValue, type = "string", minimum = 1, maximum = 1 }); } foreach (var param in operationMetadata.InputParameters) { var swagParam = typeMapper.Map(param); swagParam.paramType = param.LocationType.ToString().ToLower(); op.parameters.Add(swagParam); } foreach (var code in operationMetadata.ResponseCodes) { op.responseMessages.Add(new Responsemessage { code = code.StatusCode, message = code.Description }); } swaggerSpec.apis.Add(new ApiDetails { description = operationMetadata.Summary, path = operationMetadata.UriParser.Path, operations = new List <Operation> { op } }); } foreach (var item in typeMapper.Models) { swaggerSpec.models.Add(item.id, item); } return(swaggerSpec); }