示例#1
0
        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.description = paramDesc.Documentation;

            var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType);

            if (parameter.@in == "body")
            {
                parameter.schema = schema;
            }
            else
            {
                parameter.PopulateFrom(schema);
            }

            if (paramDesc.ParameterDescriptor.DefaultValue != null)
            {
                parameter.@default = paramDesc.ParameterDescriptor.DefaultValue;
            }
            return(parameter);
        }
示例#2
0
        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;
            }
            else
            {
                parameter.required    = location == "path" || !paramDesc.ParameterDescriptor.IsOptional;
                parameter.description = paramDesc.Documentation;
                if (parameter.description == null)
                {
                    parameter.description = paramDesc.GetDescriptionAttribute()?.Description;
                }

                var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType);
                foreach (var attribute in paramDesc.ParameterDescriptor.GetCustomAttributes <Attribute>())
                {
                    schema.AddPattern(attribute);
                    schema.AddRange(attribute);
                    schema.AddLength(attribute);
                }

                if (parameter.@in == "body")
                {
                    parameter.schema = schema;
                }
                else
                {
                    parameter.PopulateFrom(schema);
                }

                if (paramDesc.ParameterDescriptor.DefaultValue != null)
                {
                    if (parameter.@enum != null && [email protected] > 0 && _options.DescribeAllEnumsAsStrings)
                    {
                        parameter.@default = paramDesc.ParameterDescriptor.DefaultValue.ToString();
                    }
                    else
                    {
                        parameter.@default = paramDesc.ParameterDescriptor.DefaultValue;
                    }
                }
            }
            return(parameter);
        }
示例#3
0
        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;
            }
            else
            {
                parameter.pattern     = paramDesc.GetRegularExpressionAttribute()?.Pattern;
                parameter.required    = location == "path" || !paramDesc.ParameterDescriptor.IsOptional;
                parameter.description = paramDesc.Documentation;
                if (parameter.description == null)
                {
                    parameter.description = paramDesc.GetDescriptionAttribute()?.Description;
                }

                var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType, parameterDescriptor: paramDesc.ParameterDescriptor);
                if (parameter.@in == "body")
                {
                    parameter.schema = schema;
                }
                else
                {
                    parameter.PopulateFrom(schema);
                }

                if (paramDesc.ParameterDescriptor.DefaultValue != null)
                {
                    if (parameter.@enum != null && [email protected] > 0 && _options.DescribeAllEnumsAsStrings)
                    {
                        parameter.@default = paramDesc.ParameterDescriptor.DefaultValue.ToString();
                    }
                    else
                    {
                        parameter.@default = paramDesc.ParameterDescriptor.DefaultValue;
                    }
                }
            }
            return(parameter);
        }
示例#4
0
        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);
            }
            else
            {
                var rxAttrib = paramDesc.ParameterDescriptor
                               .GetCustomAttributes <RegularExpressionAttribute>()
                               .FirstOrDefault();
                if (rxAttrib != null)
                {
                    parameter.pattern = rxAttrib.Pattern;
                }
            }

            parameter.required    = location == "path" || !paramDesc.ParameterDescriptor.IsOptional;
            parameter.description = paramDesc.Documentation;

            var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType);

            if (parameter.@in == "body")
            {
                parameter.schema = schema;
            }
            else
            {
                parameter.PopulateFrom(schema);
            }

            if (paramDesc.ParameterDescriptor.DefaultValue != null)
            {
                parameter.@default = paramDesc.ParameterDescriptor.DefaultValue;
            }
            return(parameter);
        }