4
4
using System ;
5
5
using System . IO ;
6
6
using System . Linq ;
7
- using System . Net . Http ;
8
7
using System . Security ;
9
8
using System . Text ;
10
9
using System . Threading ;
@@ -21,8 +20,6 @@ namespace Microsoft.OpenApi.Reader
21
20
/// </summary>
22
21
public static class OpenApiModelFactory
23
22
{
24
- private static readonly HttpClient _httpClient = new ( ) ;
25
-
26
23
/// <summary>
27
24
/// Loads the input stream and parses it into an Open API document.
28
25
/// </summary>
@@ -81,7 +78,8 @@ public static T Load<T>(MemoryStream input, OpenApiSpecVersion version, string f
81
78
/// <returns></returns>
82
79
public static async Task < ReadResult > LoadAsync ( string url , OpenApiReaderSettings settings = null , CancellationToken token = default )
83
80
{
84
- var ( stream , format ) = await RetrieveStreamAndFormatAsync ( url , token ) . ConfigureAwait ( false ) ;
81
+ settings ??= DefaultReaderSettings . Value ;
82
+ var ( stream , format ) = await RetrieveStreamAndFormatAsync ( url , settings , token ) . ConfigureAwait ( false ) ;
85
83
return await LoadAsync ( stream , format , settings , token ) . ConfigureAwait ( false ) ;
86
84
}
87
85
@@ -98,7 +96,8 @@ public static async Task<ReadResult> LoadAsync(string url, OpenApiReaderSettings
98
96
/// <returns>The OpenAPI element.</returns>
99
97
public static async Task < T > LoadAsync < T > ( string url , OpenApiSpecVersion version , OpenApiDocument openApiDocument , OpenApiReaderSettings settings = null , CancellationToken token = default ) where T : IOpenApiElement
100
98
{
101
- var ( stream , format ) = await RetrieveStreamAndFormatAsync ( url , token ) . ConfigureAwait ( false ) ;
99
+ settings ??= DefaultReaderSettings . Value ;
100
+ var ( stream , format ) = await RetrieveStreamAndFormatAsync ( url , settings , token ) . ConfigureAwait ( false ) ;
102
101
return await LoadAsync < T > ( stream , version , openApiDocument , format , settings , token ) ;
103
102
}
104
103
@@ -286,7 +285,7 @@ private static ReadResult InternalLoad(MemoryStream input, string format, OpenAp
286
285
return readResult ;
287
286
}
288
287
289
- private static async Task < ( Stream , string ) > RetrieveStreamAndFormatAsync ( string url , CancellationToken token = default )
288
+ private static async Task < ( Stream , string ) > RetrieveStreamAndFormatAsync ( string url , OpenApiReaderSettings settings , CancellationToken token = default )
290
289
{
291
290
if ( ! string . IsNullOrEmpty ( url ) )
292
291
{
@@ -296,7 +295,7 @@ private static ReadResult InternalLoad(MemoryStream input, string format, OpenAp
296
295
if ( url . StartsWith ( "http" , StringComparison . OrdinalIgnoreCase )
297
296
|| url . StartsWith ( "https" , StringComparison . OrdinalIgnoreCase ) )
298
297
{
299
- var response = await _httpClient . GetAsync ( url , token ) . ConfigureAwait ( false ) ;
298
+ var response = await settings . HttpClient . GetAsync ( url , token ) . ConfigureAwait ( false ) ;
300
299
var mediaType = response . Content . Headers . ContentType . MediaType ;
301
300
var contentType = mediaType . Split ( ";" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) [ 0 ] ;
302
301
format = contentType . Split ( '/' ) . Last ( ) . Split ( '+' ) . Last ( ) . Split ( '-' ) . Last ( ) ;
0 commit comments