dotnet add package Soenneker.OpenApi.Merger
using Soenneker.OpenApi.Merger.Abstract;
OpenApiDocument mergedFromFiles = await openApiMerger.MergeOpenApis(
("contacts", @"C:\specs\contacts.json"),
("locations", @"C:\specs\locations.yaml"));
OpenApiDocument mergedFromDirectory = await openApiMerger.MergeDirectory(@"C:\specs");
string json = openApiMerger.ToJson(mergedFromDirectory);
OpenApiDocument mergedFromGit = await openApiMerger.MergeGitUrl("https://github.com/owner/repo");
OpenApiDocument mergedFromGitSubdirectory = await openApiMerger.MergeGitUrl("https://github.com/owner/repo", "apps");The merger:
- can merge an explicit set of
(prefix, filePath)OpenAPI inputs - scans a directory recursively for
.json,.yaml, and.ymlOpenAPI files - prefixes paths with the source file name when needed
- renames colliding component names and rewrites component
$refvalues to match - can clone and merge directly from a Git repository URL
