public OpenApiJsonEndpointsParser(IOpenApiSpecUmbrellaTypeParser <JsonCatchAllTypeModel> openApiUmbrellaJsonTypeParser,
                                   IOpenApiSpecObjectParser <JsonCatchAllTypeModel> openApiJsonObjectParser,
                                   IEnumFromStringService enumFromStringService)
 {
     _typeParser   = openApiUmbrellaJsonTypeParser;
     _objectParser = openApiJsonObjectParser;
     _enumService  = enumFromStringService;
 }
Exemplo n.º 2
0
 public YamlFileToOpenApiModelService(IOpenApiSpecObjectParser <YamlCatchAllTypeModel> openApiSpecObjectParser,
                                      IOpenApiSpecUmbrellaTypeParser <YamlCatchAllTypeModel> openApiSpecUmbrellaTypeParser,
                                      IOpenApiYamlEndpointsParser openApiYamlEndpointsParser,
                                      IOpenApiEndpointShortNameService openApiEndpointShortNameService)
 {
     _objectParser     = openApiSpecObjectParser;
     _typeParser       = openApiSpecUmbrellaTypeParser;
     _endpointsParser  = openApiYamlEndpointsParser;
     _shortNameService = openApiEndpointShortNameService;
 }
Exemplo n.º 3
0
        public IOpenApiType Parse(IOpenApiSpecObjectParser <TModel> objectParser,
                                  TModel model)
        {
            if (model.IsPrimitive())
            {
                if (model.IsEnum())
                {
                    return(new OpenApiEnumType()
                    {
                        Enum = model.Enum.ToArray()
                    });
                }

                return(new OpenApiPrimitiveType()
                {
                    Type = model.Type,
                    Format = model.Format
                });
            }

            if (model.IsObject())
            {
                return(objectParser.Parse(model));
            }

            if (model.IsReference())
            {
                return(new OpenApiReferencedType()
                {
                    Type = model.Reference
                });
            }

            if (model.IsArray())
            {
                return(new OpenApiArrayType()
                {
                    Items = Parse(objectParser,
                                  model.Items)
                });
            }

            throw new NotSupportedException("Error in parsing representation of OpenApi type");
        }