speccy resolve openapi.yml -o openapi_resolved.yml
Resolved to openapi_resolved.yml
combined these into one file. I will work with our API developers to make sure that it the file served out off the server in future, so we can reference the URL rather than the file.
After making this change I was able to load the file into Postman, and according to speccy all is correct with the file against specification....
However, I still am unable to use this file with Zap!
Both using automation, and trying in the client to directly import the file, I get a nullpointerexception
Failed to parse OpenAPI definition.
java.lang.NullPointerException
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.getDefaultValue(DataGenerator.java:103)
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.generateValue(DataGenerator.java:170)
at org.zaproxy.zap.extension.openapi.generators.DataGenerator.generateBodyValue(DataGenerator.java:166)
at org.zaproxy.zap.extension.openapi.generators.BodyGenerator.generateJsonPrimitiveValue(BodyGenerator.java:200)
at org.zaproxy.zap.extension.openapi.generators.BodyGenerator.generate(BodyGenerator.java:119)
at org.zaproxy.zap.extension.openapi.generators.BodyGenerator.generateFromArraySchema(BodyGenerator.java:147)
at org.zaproxy.zap.extension.openapi.generators.BodyGenerator.generate(BodyGenerator.java:105)
at org.zaproxy.zap.extension.openapi.generators.BodyGenerator.generate(BodyGenerator.java:94)
at org.zaproxy.zap.extension.openapi.converter.swagger.RequestModelConverter.generateBody(RequestModelConverter.java:71)
at org.zaproxy.zap.extension.openapi.converter.swagger.RequestModelConverter.convert(RequestModelConverter.java:47)
at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.convertToRequest(SwaggerConverter.java:191)
at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.getRequestModels(SwaggerConverter.java:185)
at org.zaproxy.zap.extension.openapi.ExtensionOpenApi$1.run(ExtensionOpenApi.java:365)
Failed to parse OpenAPI definition.
java.lang.NullPointerException
Having looked at the code, (and updating to latest weekly release, I am still hitting this error. It seems as though there is an issue with the schema is not being for nulls at this point:
private static String getDefaultValue(Schema<?> schema) {
if (schema.getDefault() != null) {
String strValue = schema.getDefault().toString();
if (!strValue.isEmpty()) {
return strValue;
}
}
<< SNIP >>
maybe there is something further upstream that should check this, but rewriting to:
if (schema != null && schema.getDefault() != null) {
would be safer (it's a decade since I wrote java :)).
Is this something better looked into in a git issue?
Happy to try to work this through. Our yaml file is pretty complex so I haven't dug too deep into this issue,
Cheers