-
-
Notifications
You must be signed in to change notification settings - Fork 163
Expand file tree
/
Copy pathConfigureMvcOptions.cs
More file actions
29 lines (22 loc) · 1.1 KB
/
ConfigureMvcOptions.cs
File metadata and controls
29 lines (22 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using JsonApiDotNetCore.Configuration;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
namespace JsonApiDotNetCore.OpenApi.Swashbuckle;
internal sealed class ConfigureMvcOptions : IConfigureOptions<MvcOptions>
{
private readonly JsonApiRequestFormatMetadataProvider _jsonApiRequestFormatMetadataProvider;
private readonly JsonApiOptions _jsonApiOptions;
public ConfigureMvcOptions(JsonApiRequestFormatMetadataProvider jsonApiRequestFormatMetadataProvider, IJsonApiOptions jsonApiOptions)
{
ArgumentNullException.ThrowIfNull(jsonApiRequestFormatMetadataProvider);
ArgumentNullException.ThrowIfNull(jsonApiOptions);
_jsonApiRequestFormatMetadataProvider = jsonApiRequestFormatMetadataProvider;
_jsonApiOptions = (JsonApiOptions)jsonApiOptions;
}
public void Configure(MvcOptions options)
{
ArgumentNullException.ThrowIfNull(options);
options.InputFormatters.Add(_jsonApiRequestFormatMetadataProvider);
_jsonApiOptions.IncludeExtensions(OpenApiMediaTypeExtension.OpenApi, OpenApiMediaTypeExtension.RelaxedOpenApi);
}
}