/// <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)); }
/// <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)); }