Ejemplo n.º 1
0
        /// <summary>Creates a Swagger specification from a YAML string.</summary>
        /// <param name="data">The JSON data.</param>
        /// <param name="documentPath">The document path (URL or file path) for resolving relative document references.</param>
        /// <returns>The <see cref="SwaggerDocument"/>.</returns>
        public static async Task <SwaggerDocument> FromYamlAsync(string data, string documentPath = null)
        {
            var deserializer = new DeserializerBuilder().Build();
            var yamlObject   = deserializer.Deserialize(new StringReader(data));

            var serializer = new SerializerBuilder()
                             .JsonCompatible()
                             .Build();

            var json = serializer.Serialize(yamlObject);

            return(await SwaggerDocument.FromJsonAsync(json, documentPath).ConfigureAwait(false));
        }
Ejemplo n.º 2
0
        /// <summary>Creates a Swagger specification from a YAML string.</summary>
        /// <param name="data">The JSON or YAML data.</param>
        /// <param name="documentPath">The document path (URL or file path) for resolving relative document references.</param>
        /// <param name="expectedSchemaType">The expected schema type which is used when the type cannot be determined.</param>
        /// <param name="referenceResolverFactory">The JSON reference resolver factory.</param>
        /// <returns>The <see cref="SwaggerDocument"/>.</returns>
        public static async Task <SwaggerDocument> FromYamlAsync(string data, string documentPath, SchemaType expectedSchemaType, Func <SwaggerDocument, JsonReferenceResolver> referenceResolverFactory)
        {
            var deserializer = new DeserializerBuilder().Build();
            var yamlObject   = deserializer.Deserialize(new StringReader(data));
            var serializer   = new SerializerBuilder()
                               .JsonCompatible()
                               .Build();

            var json = serializer.Serialize(yamlObject);

            referenceResolverFactory = referenceResolverFactory ?? CreateReferenceResolverFactory();
            return(await SwaggerDocument.FromJsonAsync(json, documentPath, expectedSchemaType, referenceResolverFactory).ConfigureAwait(false));
        }