private Parameter CreateParameter(ApiParameterDescription paramDesc, bool inPath, SchemaRegistry schemaRegistry) { var @in = (inPath) ? "path" : (paramDesc.Source == ApiParameterSource.FromUri) ? "query" : "body"; var parameter = new Parameter { name = paramDesc.Name, @in = @in }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return(parameter); } parameter.required = !paramDesc.ParameterDescriptor.IsOptional; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); if (parameter.@in == "body") { parameter.schema = schema; } else { parameter.PopulateFrom(schema); } return(parameter); }
private Parameter CreateParameter(string location, ApiParameterDescription paramDesc, SchemaRegistry schemaRegistry) { var parameter = new Parameter { @in = location, name = paramDesc.Name }; // e.g. route parameters if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return(parameter); } parameter.required = location == "path" || !paramDesc.ParameterDescriptor.IsOptional; parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); if (parameter.@in == "body") { parameter.schema = schema; } else { parameter.PopulateFrom(schema); } return(parameter); }
private Parameter CreateParameter( string location, ApiParameterDescription paramDesc, SchemaRegistry schemaRegistry) { Parameter partialSchema = new Parameter() { @in = location, name = paramDesc.get_Name() }; if (paramDesc.get_ParameterDescriptor() == null) { partialSchema.type = "string"; partialSchema.required = new bool?(true); return(partialSchema); } partialSchema.required = new bool?(location == "path" || !paramDesc.get_ParameterDescriptor().get_IsOptional()); partialSchema.@default = paramDesc.get_ParameterDescriptor().get_DefaultValue(); Schema orRegister = schemaRegistry.GetOrRegister(paramDesc.get_ParameterDescriptor().get_ParameterType()); if (partialSchema.@in == "body") { partialSchema.schema = orRegister; } else { partialSchema.PopulateFrom(orRegister); } return(partialSchema); }
private Parameter CreateParameter(string location, ApiParameterDescription paramDesc, SchemaRegistry schemaRegistry) { var parameter = new Parameter { @in = location, name = paramDesc.Name }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return(parameter); } parameter.required = location == "path" || !paramDesc.ParameterDescriptor.IsOptional; parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); var isJToken = paramDesc.ParameterDescriptor.ParameterType.FullName.Equals("Newtonsoft.Json.Linq.JObject"); if (parameter.@in == "body") { parameter.schema = schema; } else { parameter.PopulateFrom(schema); } return(parameter); }
private Parameter CreateParameter(ApiParameterDescription paramDesc, bool inPath, SchemaRegistry schemaRegistry) { var @in = (inPath) ? "path" : (paramDesc.Source == ApiParameterSource.FromUri) ? "query" : "body"; var parameter = new Parameter { name = paramDesc.Name, @in = @in }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return(parameter); } parameter.required = inPath || !paramDesc.ParameterDescriptor.IsOptional; parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); var reflectedDescriptor = (ReflectedHttpParameterDescriptor)paramDesc.ParameterDescriptor; foreach (var attribute in reflectedDescriptor.ParameterInfo.GetCustomAttributes(true)) { SchemaExtensions.SetSchemaDetails(schema, attribute); } //if (paramDesc.ParameterDescriptor.ActionDescriptor != null) //{ // var actionIgnore = paramDesc.ParameterDescriptor.ActionDescriptor.GetCustomAttributes<SwaggerIgnore>(); // if (actionIgnore != null) // { // parameter.ignore = true; // } //} if (parameter.@in == "body") { parameter.schema = schema; } else { parameter.PopulateFrom(schema); } return(parameter); }
private void ExtractAndAddQueryParams( Schema sourceSchema, string sourceQualifier, bool? sourceRequired, SchemaRegistry schemaRegistry, IList<Parameter> operationParams) { foreach (var entry in sourceSchema.properties) { var propertySchema = entry.Value; if (propertySchema.readOnly == true) continue; var required = (sourceRequired == true) && sourceSchema.required != null && sourceSchema.required.Contains(entry.Key); if (propertySchema.@ref != null) { var schema = schemaRegistry.Definitions[[email protected]("#/definitions/", "")]; ExtractAndAddQueryParams( schema, sourceQualifier + entry.Key.ToCamelCase() + ".", required, schemaRegistry, operationParams); } else { var param = new Parameter { name = sourceQualifier + entry.Key.ToCamelCase(), @in = "query", required = required, description = entry.Value.description, example = entry.Value.example }; param.PopulateFrom(entry.Value); if (param.type == "array") param.collectionFormat = "multi"; operationParams.Add(param); } } }
private void ExtractAndAddQueryParams( Schema sourceSchema, string sourceQualifier, bool sourceRequired, SchemaRegistry schemaRegistry, IList<Parameter> operationParams) { foreach (var entry in sourceSchema.properties) { var propertySchema = entry.Value; var required = sourceRequired && sourceSchema.required != null && sourceSchema.required.Contains(entry.Key); if (propertySchema.@ref != null) { var schema = schemaRegistry.Definitions[[email protected]("#/definitions/", "")]; ExtractAndAddQueryParams( schema, sourceQualifier + entry.Key.ToLowerInvariant() + ".", required, schemaRegistry, operationParams); } else { var param = new Parameter { name = sourceQualifier + entry.Key.ToLowerInvariant(), @in = "query", required = required, description = entry.Value.description }; param.PopulateFrom(entry.Value); operationParams.Add(param); } } }
private Parameter CreateParameter(ApiParameterDescription paramDesc, bool inPath, SchemaRegistry schemaRegistry) { var @in = (inPath) ? "path" : (paramDesc.Source == ApiParameterSource.FromUri) ? "query" : "body"; var parameter = new Parameter { name = paramDesc.Name, @in = @in }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return parameter; } parameter.required = !paramDesc.ParameterDescriptor.IsOptional; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); if (parameter.@in == "body") parameter.schema = schema; else parameter.PopulateFrom(schema); return parameter; }
private static Parameter CreateParameter(SwaggerApiParameterDescription paramDesc, bool inPath, SchemaRegistry schemaRegistry, IEdmModel edmModel) { Contract.Requires(paramDesc != null); Contract.Requires(schemaRegistry != null); Contract.Assume(paramDesc.ParameterDescriptor != null); var @in = inPath ? "path" : MapToSwaggerParameterLocation(paramDesc.SwaggerSource); var parameter = new Parameter { name = paramDesc.Name, description = paramDesc.Documentation, @in = @in, required = inPath || !paramDesc.ParameterDescriptor.IsOptional, @default = paramDesc.ParameterDescriptor.DefaultValue }; var parameterType = paramDesc.ParameterDescriptor.ParameterType; Contract.Assume(parameterType != null); var schema = schemaRegistry.GetOrRegisterParameterType(edmModel, paramDesc.ParameterDescriptor); if (parameter.@in == "body") parameter.schema = schema; else parameter.PopulateFrom(schema); return parameter; }
private Parameter CreateParameter(string location, ApiParameterDescription paramDesc, SchemaRegistry schemaRegistry) { var parameter = new Parameter { @in = location, name = paramDesc.Name }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return parameter; } parameter.required = location == "path" || !paramDesc.ParameterDescriptor.IsOptional; parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); if (parameter.@in == "body") parameter.schema = schema; else parameter.PopulateFrom(schema); return parameter; }
private Parameter CreateParameter(ApiParameterDescription paramDesc, bool inPath, SchemaRegistry schemaRegistry) { var @in = (inPath) ? "path" : (paramDesc.Source == ApiParameterSource.FromUri) ? "query" : "body"; var parameter = new Parameter { name = paramDesc.Name, @in = @in }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; return parameter; } parameter.required = inPath || !paramDesc.ParameterDescriptor.IsOptional; parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); var reflectedDescriptor = (ReflectedHttpParameterDescriptor)paramDesc.ParameterDescriptor; foreach (var attribute in reflectedDescriptor.ParameterInfo.GetCustomAttributes(true)) { SchemaExtensions.SetSchemaDetails(schema, attribute); } //if (paramDesc.ParameterDescriptor.ActionDescriptor != null) //{ // var actionIgnore = paramDesc.ParameterDescriptor.ActionDescriptor.GetCustomAttributes<SwaggerIgnore>(); // if (actionIgnore != null) // { // parameter.ignore = true; // } //} if (parameter.@in == "body") parameter.schema = schema; else parameter.PopulateFrom(schema); return parameter; }