/// <summary> /// Visits list of <see cref="OpenApiDocument"/> and child objects /// </summary> /// <param name="doc">OpenApiDocument to be walked</param> public void Walk(OpenApiDocument doc) { _visitor.Visit(doc); Walk(doc.Info); Walk(doc.Servers); Walk(doc.Paths); Walk(doc.Components); Walk(doc.ExternalDocs); Walk(doc.Tags); Walk(doc as IOpenApiExtensible); }
/// <summary> /// Visits list of <see cref="OpenApiDocument"/> and child objects /// </summary> /// <param name="doc">OpenApiDocument to be walked</param> public void Walk(OpenApiDocument doc) { if (doc == null) { return; } _visitor.Visit(doc); Walk(OpenApiConstants.Info, () => Walk(doc.Info)); Walk(OpenApiConstants.Servers, () => Walk(doc.Servers)); Walk(OpenApiConstants.Paths, () => Walk(doc.Paths)); Walk(OpenApiConstants.Components, () => Walk(doc.Components)); Walk(OpenApiConstants.ExternalDocs, () => Walk(doc.ExternalDocs)); Walk(OpenApiConstants.Tags, () => Walk(doc.Tags)); Walk(doc as IOpenApiExtensible); }
/// <summary> /// Visits list of <see cref="OpenApiDocument"/> and child objects /// </summary> /// <param name="doc">OpenApiDocument to be walked</param> public void Walk(OpenApiDocument doc) { if (doc == null) { return; } _schemaLoop.Clear(); _pathItemLoop.Clear(); _visitor.Visit(doc); Walk(OpenApiConstants.Info, () => Walk(doc.Info)); Walk(OpenApiConstants.Servers, () => Walk(doc.Servers)); Walk(OpenApiConstants.Paths, () => Walk(doc.Paths)); Walk(OpenApiConstants.Components, () => Walk(doc.Components)); Walk(OpenApiConstants.Security, () => Walk(doc.SecurityRequirements)); Walk(OpenApiConstants.ExternalDocs, () => Walk(doc.ExternalDocs)); Walk(OpenApiConstants.Tags, () => Walk(doc.Tags)); Walk(doc as IOpenApiExtensible); }
/// <summary> /// Walks through the <see cref="OpenApiDocument"/> and validates each element. /// </summary> /// <param name="doc"></param> public void Walk(OpenApiDocument doc) { _visitor.Visit(doc); _visitor.Visit(doc.Info); _visitor.Visit(doc.Servers); if (doc.Servers != null) { foreach (var server in doc.Servers) { _visitor.Visit(server); foreach (var variable in server.Variables.Values) { _visitor.Visit(variable); } } } _visitor.Visit(doc.Paths); foreach (var pathItem in doc.Paths.Values) { _visitor.Visit(pathItem); _visitor.Visit(pathItem.Operations); foreach (var operation in pathItem.Operations.Values) { _visitor.Visit(operation); if (operation.Parameters != null) { _visitor.Visit(operation.Parameters); foreach (var parameter in operation.Parameters) { _visitor.Visit(parameter); } } if (operation.RequestBody != null) { _visitor.Visit(operation.RequestBody); if (operation.RequestBody.Content != null) { WalkContent(operation.RequestBody.Content); } } if (operation.Responses != null) { _visitor.Visit(operation.Responses); foreach (var response in operation.Responses.Values) { _visitor.Visit(response); WalkContent(response.Content); if (response.Links != null) { _visitor.Visit(response.Links); foreach (var link in response.Links.Values) { _visitor.Visit(link); } } } } } } }