|
17 | 17 | package com.twosigma.webtau.openapi; |
18 | 18 |
|
19 | 19 | import com.atlassian.oai.validator.SwaggerRequestResponseValidator; |
20 | | -import com.atlassian.oai.validator.model.Request; |
| 20 | +import com.atlassian.oai.validator.model.SimpleRequest; |
21 | 21 | import com.atlassian.oai.validator.model.SimpleResponse; |
22 | 22 | import com.atlassian.oai.validator.report.ValidationReport; |
23 | 23 | import com.twosigma.webtau.console.ConsoleOutputs; |
@@ -50,15 +50,31 @@ public void validateApiSpec(HttpValidationResult result) { |
50 | 50 | return; |
51 | 51 | } |
52 | 52 |
|
53 | | - SimpleResponse response = SimpleResponse.Builder |
54 | | - .status(result.getResponseStatusCode()) |
55 | | - .withBody(result.getResponseTextContent()) |
56 | | - .build(); |
| 53 | + SimpleRequest request = buildRequest(result); |
| 54 | + SimpleResponse response = buildResponse(result); |
57 | 55 |
|
58 | | - Request.Method method = Enum.valueOf(Request.Method.class, result.getRequestMethod()); |
| 56 | + ValidationReport validationReport = openApiValidator.validate(request, response); |
| 57 | + validationReport.getMessages().forEach(message -> result.addMismatch("API spec validation failure: " + message.toString())); |
| 58 | + } |
| 59 | + |
| 60 | + private SimpleResponse buildResponse(HttpValidationResult result) { |
| 61 | + return SimpleResponse.Builder |
| 62 | + .status(result.getResponseStatusCode()) |
| 63 | + .withBody(result.getResponseTextContent()) |
| 64 | + .build(); |
| 65 | + } |
| 66 | + |
| 67 | + private SimpleRequest buildRequest(HttpValidationResult result) { |
59 | 68 | String relativePath = extractPath(result.getFullUrl()); |
60 | 69 |
|
61 | | - ValidationReport validationReport = openApiValidator.validateResponse(relativePath, method, response); |
62 | | - validationReport.getMessages().forEach(message -> result.addMismatch("API spec validation failure: " + message.toString())); |
| 70 | + SimpleRequest.Builder builder = new SimpleRequest.Builder(result.getRequestMethod(), relativePath); |
| 71 | + if (result.getRequestContent() != null) { |
| 72 | + builder.withBody(result.getRequestContent()); |
| 73 | + } |
| 74 | + if (result.getRequestHeader() != null) { |
| 75 | + result.getRequestHeader().forEachProperty(builder::withHeader); |
| 76 | + } |
| 77 | + |
| 78 | + return builder.build(); |
63 | 79 | } |
64 | 80 | } |
0 commit comments