diff --git a/core/src/main/java/org/openapitools/openapidiff/core/output/MarkdownRender.java b/core/src/main/java/org/openapitools/openapidiff/core/output/MarkdownRender.java index e55179b1..b1182606 100644 --- a/core/src/main/java/org/openapitools/openapidiff/core/output/MarkdownRender.java +++ b/core/src/main/java/org/openapitools/openapidiff/core/output/MarkdownRender.java @@ -51,10 +51,16 @@ public class MarkdownRender implements Render { public void render(ChangedOpenApi diff, OutputStreamWriter outputStreamWriter) { this.diff = diff; this.handledSchemas.clear(); + + apiTitle( + diff.getNewSpecOpenApi().getInfo().getTitle(), + diff.getNewSpecOpenApi().getInfo().getVersion(), + outputStreamWriter); listEndpoints("What's New", diff.getNewEndpoints(), outputStreamWriter); listEndpoints("What's Deleted", diff.getMissingEndpoints(), outputStreamWriter); listEndpoints("What's Deprecated", diff.getDeprecatedEndpoints(), outputStreamWriter); listEndpoints(diff.getChangedOperations(), outputStreamWriter); + changeSummary("Result", diff, outputStreamWriter); try { outputStreamWriter.close(); } catch (IOException e) { @@ -62,6 +68,29 @@ public void render(ChangedOpenApi diff, OutputStreamWriter outputStreamWriter) { } } + protected String bigTitle(String title) { + return H3 + title + '\n' + HR + '\n'; + } + + protected void apiTitle(String title, String version, OutputStreamWriter outputStreamWriter) { + safelyAppend(outputStreamWriter, bigTitle(title + " (v " + version + ")")); + } + + protected void changeSummary( + String title, ChangedOpenApi diff, OutputStreamWriter outputStreamWriter) { + safelyAppend(outputStreamWriter, sectionTitle(title)); + + if (diff.isUnchanged()) { + safelyAppend(outputStreamWriter, "No differences. Specifications are equivalent"); + } else if (diff.isCompatible()) { + safelyAppend(outputStreamWriter, "API changes are backward compatible"); + } else { + safelyAppend(outputStreamWriter, "API changes broke backward compatibility"); + } + + safelyAppend(outputStreamWriter, "\n\n"); + } + protected String sectionTitle(String title) { return H4 + title + '\n' + HR + '\n'; }