
com.qdesrame.openapi.diff.compare.ApiResponseDiff Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openapi-diff Show documentation
Show all versions of openapi-diff Show documentation
Utility for comparing two OpenAPI specifications.
package com.qdesrame.openapi.diff.compare;
import com.qdesrame.openapi.diff.model.ChangedApiResponse;
import com.qdesrame.openapi.diff.model.ChangedResponse;
import io.swagger.v3.oas.models.responses.ApiResponse;
import io.swagger.v3.oas.models.responses.ApiResponses;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* Created by adarsh.sharma on 04/01/18.
*/
public class ApiResponseDiff {
private OpenApiDiff openApiDiff;
public ApiResponseDiff(OpenApiDiff openApiDiff) {
this.openApiDiff = openApiDiff;
}
public Optional diff(ApiResponses left, ApiResponses right) {
MapKeyDiff responseMapKeyDiff = MapKeyDiff.diff(left, right);
ChangedApiResponse changedApiResponse = new ChangedApiResponse(left, right);
changedApiResponse.setAddResponses(responseMapKeyDiff.getIncreased());
changedApiResponse.setMissingResponses(responseMapKeyDiff.getMissing());
List sharedResponseCodes = responseMapKeyDiff.getSharedKey();
Map resps = new HashMap<>();
for (String responseCode : sharedResponseCodes) {
openApiDiff.getResponseDiff().diff(left.get(responseCode), right.get(responseCode))
.ifPresent(changedResponse -> resps.put(responseCode, changedResponse));
}
changedApiResponse.setChangedResponses(resps);
return changedApiResponse.isDiff() ? Optional.of(changedApiResponse) : Optional.empty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy