From 95ed8473036f7903ebdd60631dbb3b3eed440546 Mon Sep 17 00:00:00 2001 From: Quentin Desrame Date: Tue, 19 Feb 2019 18:01:05 +0100 Subject: [PATCH 1/3] fix(output): check if ChangedContent is null or not --- .../java/com/qdesrame/openapi/diff/output/MarkdownRender.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java index a60f7c554..74b581234 100644 --- a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java +++ b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java @@ -212,6 +212,9 @@ protected String itemHeader(String title, String mediaType, String description) } protected String bodyContent(String prefix, ChangedContent changedContent) { + if (changedContent == null) { + return ""; + } StringBuilder sb = new StringBuilder("\n"); sb.append(listContent(prefix, "New content type", changedContent.getIncreased())); sb.append(listContent(prefix, "Deleted content type", changedContent.getMissing())); From 0392a1f8d8c70f46ea11bf8bef835908cac54811 Mon Sep 17 00:00:00 2001 From: Quentin Desrame Date: Tue, 19 Feb 2019 18:17:27 +0100 Subject: [PATCH 2/3] fix(output): add metadata description in request body section --- .../openapi/diff/output/MarkdownRender.java | 44 +++++-------------- 1 file changed, 12 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java index 74b581234..01f4bfff5 100644 --- a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java +++ b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java @@ -63,8 +63,7 @@ protected String sectionTitle(String title) { protected String listEndpoints(String title, List endpoints) { if (null == endpoints || endpoints.size() == 0) return ""; StringBuilder sb = new StringBuilder(sectionTitle(title)); - endpoints - .stream() + endpoints.stream() .map(e -> itemEndpoint(e.getMethod().toString(), e.getPathUrl(), e.getSummary())) .forEach(sb::append); return sb.toString(); @@ -85,8 +84,7 @@ protected String titleH5(String title) { protected String listEndpoints(List changedOperations) { if (null == changedOperations || changedOperations.size() == 0) return ""; StringBuilder sb = new StringBuilder(sectionTitle("What's Changed")); - changedOperations - .stream() + changedOperations.stream() .map( operation -> { StringBuilder details = @@ -104,6 +102,7 @@ protected String listEndpoints(List changedOperations) { if (operation.resultRequestBody().isDifferent()) { details .append(titleH5("Request:")) + .append(metadata("Description", operation.getRequestBody().getDescription())) .append(bodyContent(operation.getRequestBody().getContent())); } if (operation.resultApiResponses().isDifferent()) { @@ -121,10 +120,7 @@ protected String responses(ChangedApiResponse changedApiResponse) { StringBuilder sb = new StringBuilder("\n"); sb.append(listResponse("New response", changedApiResponse.getIncreased())); sb.append(listResponse("Deleted response", changedApiResponse.getMissing())); - changedApiResponse - .getChanged() - .entrySet() - .stream() + changedApiResponse.getChanged().entrySet().stream() .map(e -> this.itemResponse(e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -132,9 +128,7 @@ protected String responses(ChangedApiResponse changedApiResponse) { protected String listResponse(String title, Map responses) { StringBuilder sb = new StringBuilder(); - responses - .entrySet() - .stream() + responses.entrySet().stream() .map(e -> this.itemResponse(title, e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -176,10 +170,7 @@ protected String headers(ChangedHeaders headers) { if (headers != null) { sb.append(listHeader("New header", headers.getIncreased())); sb.append(listHeader("Deleted header", headers.getMissing())); - headers - .getChanged() - .entrySet() - .stream() + headers.getChanged().entrySet().stream() .map(e -> this.itemHeader(e.getKey(), e.getValue())) .forEach(sb::append); } @@ -188,9 +179,7 @@ protected String headers(ChangedHeaders headers) { protected String listHeader(String title, Map headers) { StringBuilder sb = new StringBuilder(); - headers - .entrySet() - .stream() + headers.entrySet().stream() .map(e -> this.itemHeader(title, e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -224,10 +213,7 @@ protected String bodyContent(String prefix, ChangedContent changedContent) { } else { deepness = 0; } - changedContent - .getChanged() - .entrySet() - .stream() + changedContent.getChanged().entrySet().stream() .map(e -> this.itemContent(deepness, e.getKey(), e.getValue())) .forEach(e -> sb.append(prefix).append(e)); return sb.toString(); @@ -239,9 +225,7 @@ protected String bodyContent(ChangedContent changedContent) { protected String listContent(String prefix, String title, Map mediaTypes) { StringBuilder sb = new StringBuilder(); - mediaTypes - .entrySet() - .stream() + mediaTypes.entrySet().stream() .map(e -> this.itemContent(title, e.getKey(), e.getValue())) .forEach(e -> sb.append(prefix).append(e)); return sb.toString(); @@ -339,18 +323,14 @@ protected String schema(int deepness, ComposedSchema schema, DiffContext context StringBuilder sb = new StringBuilder(); if (schema.getAllOf() != null && schema.getAllOf() != null) { LOGGER.debug("All of schema"); - schema - .getAllOf() - .stream() + schema.getAllOf().stream() .map(this::resolve) .forEach(composedChild -> sb.append(schema(deepness, composedChild, context))); } if (schema.getOneOf() != null && schema.getOneOf() != null) { LOGGER.debug("One of schema"); sb.append(format("%sOne of:\n\n", indent(deepness))); - schema - .getOneOf() - .stream() + schema.getOneOf().stream() .map(this::resolve) .forEach(composedChild -> sb.append(schema(deepness + 1, composedChild, context))); } @@ -502,7 +482,7 @@ protected String metadata(String beginning, String name, ChangedMetadata changed if (changedMetadata == null) { return ""; } - if (isUnchanged(changedMetadata) && showChangedMetadata) { + if (!isUnchanged(changedMetadata) && showChangedMetadata) { return format( "Changed %s:\n%s\nto:\n%s\n\n", name, From 6e9795010771474738b8fb19498179e61bfdfe13 Mon Sep 17 00:00:00 2001 From: Quentin Desrame Date: Tue, 19 Feb 2019 18:20:04 +0100 Subject: [PATCH 3/3] format(output): reformat markdown renderer according google format --- .../openapi/diff/output/MarkdownRender.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java index 01f4bfff5..73a519f8c 100644 --- a/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java +++ b/src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java @@ -63,7 +63,8 @@ protected String sectionTitle(String title) { protected String listEndpoints(String title, List endpoints) { if (null == endpoints || endpoints.size() == 0) return ""; StringBuilder sb = new StringBuilder(sectionTitle(title)); - endpoints.stream() + endpoints + .stream() .map(e -> itemEndpoint(e.getMethod().toString(), e.getPathUrl(), e.getSummary())) .forEach(sb::append); return sb.toString(); @@ -84,7 +85,8 @@ protected String titleH5(String title) { protected String listEndpoints(List changedOperations) { if (null == changedOperations || changedOperations.size() == 0) return ""; StringBuilder sb = new StringBuilder(sectionTitle("What's Changed")); - changedOperations.stream() + changedOperations + .stream() .map( operation -> { StringBuilder details = @@ -120,7 +122,10 @@ protected String responses(ChangedApiResponse changedApiResponse) { StringBuilder sb = new StringBuilder("\n"); sb.append(listResponse("New response", changedApiResponse.getIncreased())); sb.append(listResponse("Deleted response", changedApiResponse.getMissing())); - changedApiResponse.getChanged().entrySet().stream() + changedApiResponse + .getChanged() + .entrySet() + .stream() .map(e -> this.itemResponse(e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -128,7 +133,9 @@ protected String responses(ChangedApiResponse changedApiResponse) { protected String listResponse(String title, Map responses) { StringBuilder sb = new StringBuilder(); - responses.entrySet().stream() + responses + .entrySet() + .stream() .map(e -> this.itemResponse(title, e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -170,7 +177,10 @@ protected String headers(ChangedHeaders headers) { if (headers != null) { sb.append(listHeader("New header", headers.getIncreased())); sb.append(listHeader("Deleted header", headers.getMissing())); - headers.getChanged().entrySet().stream() + headers + .getChanged() + .entrySet() + .stream() .map(e -> this.itemHeader(e.getKey(), e.getValue())) .forEach(sb::append); } @@ -179,7 +189,9 @@ protected String headers(ChangedHeaders headers) { protected String listHeader(String title, Map headers) { StringBuilder sb = new StringBuilder(); - headers.entrySet().stream() + headers + .entrySet() + .stream() .map(e -> this.itemHeader(title, e.getKey(), e.getValue())) .forEach(sb::append); return sb.toString(); @@ -213,7 +225,10 @@ protected String bodyContent(String prefix, ChangedContent changedContent) { } else { deepness = 0; } - changedContent.getChanged().entrySet().stream() + changedContent + .getChanged() + .entrySet() + .stream() .map(e -> this.itemContent(deepness, e.getKey(), e.getValue())) .forEach(e -> sb.append(prefix).append(e)); return sb.toString(); @@ -225,7 +240,9 @@ protected String bodyContent(ChangedContent changedContent) { protected String listContent(String prefix, String title, Map mediaTypes) { StringBuilder sb = new StringBuilder(); - mediaTypes.entrySet().stream() + mediaTypes + .entrySet() + .stream() .map(e -> this.itemContent(title, e.getKey(), e.getValue())) .forEach(e -> sb.append(prefix).append(e)); return sb.toString(); @@ -323,14 +340,18 @@ protected String schema(int deepness, ComposedSchema schema, DiffContext context StringBuilder sb = new StringBuilder(); if (schema.getAllOf() != null && schema.getAllOf() != null) { LOGGER.debug("All of schema"); - schema.getAllOf().stream() + schema + .getAllOf() + .stream() .map(this::resolve) .forEach(composedChild -> sb.append(schema(deepness, composedChild, context))); } if (schema.getOneOf() != null && schema.getOneOf() != null) { LOGGER.debug("One of schema"); sb.append(format("%sOne of:\n\n", indent(deepness))); - schema.getOneOf().stream() + schema + .getOneOf() + .stream() .map(this::resolve) .forEach(composedChild -> sb.append(schema(deepness + 1, composedChild, context))); }