Example #1
0
        protected override OpenApiModel Convert(OpenApiFile versionedModel)
        {
            var openApiBuilder = new OpenApiModel.OpenApiModelBuilder();

            var collector = new ReferableCollector(new ReferencesRegister());

            versionedModel.Accept("#", collector);
            collector.Validate();

            if (!collector.Validate())
            {
                throw new JsonException("Not all references was satisfied.");
            }

            MapSchemes(openApiBuilder, collector.GetObjectOfType <Schema>());
            MapSecuritySchema(openApiBuilder, collector.GetObjectOfType <SecurityScheme>());
            MapHeaders(openApiBuilder, collector.GetObjectOfType <Header>());
            MapRequestBodies(openApiBuilder, collector.GetObjectOfType <Request>());
            MapParameters(openApiBuilder, collector.GetObjectOfType <Parameter>());
            MapResponses(openApiBuilder, collector.GetObjectOfType <Response>());
            MapEndpoints(openApiBuilder, versionedModel.Paths);

            return(openApiBuilder.Create());
        }