Skip to content

Commit d6dba10

Browse files
committed
Updated walkers and added validate method
1 parent 2fd11fa commit d6dba10

File tree

7 files changed

+231
-46
lines changed

7 files changed

+231
-46
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
using System;
5+
using System.Collections.Generic;
6+
using Microsoft.OpenApi.Interfaces;
7+
using Microsoft.OpenApi.Models;
8+
using Microsoft.OpenApi.Services;
9+
using Microsoft.OpenApi.Validations;
10+
11+
namespace Microsoft.OpenApi.Extensions
12+
{
13+
/// <summary>
14+
/// Extension methods that apply across all OpenAPIElements
15+
/// </summary>
16+
public static class OpenApiElementExtensions
17+
{
18+
/// <summary>
19+
/// Validate element and all child elements
20+
/// </summary>
21+
/// <typeparam name="T"></typeparam>
22+
/// <param name="element"></param>
23+
/// <returns></returns>
24+
public static IEnumerable<ValidationError> Validate(this IOpenApiElement element) {
25+
var validator = new OpenApiValidator();
26+
var walker = new OpenApiWalker(validator);
27+
walker.Walk(element);
28+
return validator.Errors;
29+
}
30+
}
31+
}

src/Microsoft.OpenApi/Services/OpenApiVisitorBase.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,27 @@ public virtual void Visit(OpenApiLink link)
196196
{
197197
}
198198

199+
/// <summary>
200+
/// Visits <see cref="OpenApiCallback"/>
201+
/// </summary>
202+
public virtual void Visit(OpenApiCallback callback)
203+
{
204+
}
205+
199206
/// <summary>
200207
/// Visits <see cref="OpenApiTag"/>
201208
/// </summary>
202209
public virtual void Visit(OpenApiTag tag)
203210
{
204211
}
212+
213+
/// <summary>
214+
/// Visits <see cref="OpenApiHeader"/>
215+
/// </summary>
216+
public virtual void Visit(OpenApiHeader tag)
217+
{
218+
}
219+
205220
/// <summary>
206221
/// Visits <see cref="OpenApiOAuthFlow"/>
207222
/// </summary>
@@ -210,7 +225,14 @@ public virtual void Visit(OpenApiOAuthFlow openApiOAuthFlow)
210225
}
211226

212227
/// <summary>
213-
/// Visits <see cref="OpenApiOAuthFlow"/>
228+
/// Visits <see cref="OpenApiSecurityRequirement"/>
229+
/// </summary>
230+
public virtual void Visit(OpenApiSecurityRequirement securityRequirement)
231+
{
232+
}
233+
234+
/// <summary>
235+
/// Visits list of <see cref="OpenApiTag"/>
214236
/// </summary>
215237
public virtual void Visit(IList<OpenApiTag> openApiTags)
216238
{

0 commit comments

Comments
 (0)