Ejemplo n.º 1
0
        public static IList <ParameterEntity> TransformUriParameters(OpenApiOperation openApiOperation, string componentGroupId)
        {
            var parameterEntities = new List <ParameterEntity>();

            foreach (var openApiParameter in openApiOperation.Parameters)
            {
                var parameterEntity = new ParameterEntity
                {
                    Name         = openApiParameter.Name,
                    Description  = openApiParameter.Description,
                    In           = openApiParameter.In.ToString().ToLower(),
                    IsRequired   = openApiParameter.Required,
                    IsReadOnly   = openApiParameter.Schema?.ReadOnly ?? false,
                    Nullable     = openApiParameter.Schema?.Nullable ?? true,
                    IsDeprecated = openApiParameter.Deprecated,
                    Pattern      = openApiParameter.Schema?.Pattern,
                    Format       = openApiParameter.Schema?.Format,
                    Types        = new List <PropertyTypeEntity>
                    {
                        TransformHelper.ParseOpenApiSchema(openApiParameter.Schema, componentGroupId)
                    }
                };
                parameterEntities.Add(parameterEntity);
            }
            return(parameterEntities);
        }
Ejemplo n.º 2
0
        private static IList <ResponseMediaTypeAndBodyEntity> GetResponseMediaTypeAndBodies(OpenApiReference openApiReference, IDictionary <string, OpenApiMediaType> contents, string componentGroupId)
        {
            var responseMediaTypeAndBodyEntities = new List <ResponseMediaTypeAndBodyEntity>();

            foreach (var content in contents)
            {
                var propertyTypeEntities = new List <PropertyTypeEntity>();
                var propertyEntities     = new List <PropertyEntity>();
                if (!string.IsNullOrEmpty(openApiReference?.Id) && openApiReference?.ReferenceV3?.Contains("responses") == false)
                {
                    propertyTypeEntities.Add(new PropertyTypeEntity
                    {
                        Id = TransformHelper.GetReferenceId(openApiReference, componentGroupId)
                    });
                }
                else
                {
                    var type = TransformHelper.ParseOpenApiSchema(content.Value.Schema, componentGroupId);
                    if (type.AnonymousChildren != null && type.AnonymousChildren.Count > 0)
                    {
                        propertyEntities.AddRange(type.AnonymousChildren);
                    }
                    else
                    {
                        type.AnonymousChildren = null;
                        propertyTypeEntities.Add(type);
                    }
                }

                responseMediaTypeAndBodyEntities.Add(new ResponseMediaTypeAndBodyEntity
                {
                    MediaType           = content.Key,
                    ResponseBodyTypes   = propertyTypeEntities.Count > 0 ? propertyTypeEntities : null,
                    ResponseBodySchemas = propertyEntities.Count > 0 ? propertyEntities : null
                });
            }
            return(responseMediaTypeAndBodyEntities);
        }