oas_parser
oas_parser copied to clipboard
problem parsing azure netapp swagger circular reference
trafficstars
When parsing https://github.com/Azure/azure-rest-api-specs/blob/main/specification/netapp/resource-manager/Microsoft.NetApp/stable/2022-11-01/netapp.json I get Error: key not found: "ErrorDetail" backtrace:
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/pointer.rb:11:in `fetch'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/pointer.rb:11:in `block in resolve'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/pointer.rb:10:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/pointer.rb:10:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/pointer.rb:10:in `resolve'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:68:in `expand_pointer'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:41:in `expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:20:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:24:in `block in deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `each'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `reduce'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:23:in `deeply_expand_refs'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:14:in `resolve'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/parser.rb:5:in `resolve'
/Users/marioruizsanchez/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/oas_parser-0.25.4/lib/oas_parser/definition.rb:12:in `resolve'
I think this is because of circular references:
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse"
}
}
might be the common type ErrorDetails does reference itself "$ref": "#/definitions/ErrorDetail"