public Map<String, SecuritySchemeDefinition> securityDefinitions(ObjectNode node, String location, ParseResult result) { if(node == null) return null; Map<String, SecuritySchemeDefinition> output = new LinkedHashMap<>(); Set<String> keys = getKeys(node); for(String key : keys) { ObjectNode obj = getObject(key, node, false, location, result); SecuritySchemeDefinition def = securityDefinition(obj, location + "." + key, result); if(def != null) { output.put(key, def); } } return output; }
public Map<String, Response> responses(ObjectNode node, String location, ParseResult result) { if(node == null) return null; Map<String, Response> output = new TreeMap<String, Response>(); Set<String> keys = getKeys(node); for(String key : keys) { if (key.startsWith("x-")) { } else { ObjectNode obj = getObject(key, node, false, location + ".responses", result); Response response = response(obj, location + "." + key, result); output.put(key, response); } } return output; }
public Tag tag(ObjectNode node, String location, ParseResult result) { Tag tag = null; if(node != null) { tag = new Tag(); Set<String> keys = getKeys(node); String value = getString("name", node, true, location, result); tag.name(value); value = getString("description", node, false, location, result); tag.description(value); ObjectNode externalDocs = getObject("externalDocs", node, false, location, result); ExternalDocs docs = externalDocs(externalDocs, location + "externalDocs", result); tag.externalDocs(docs); // extra keys for(String key : keys) { if(key.startsWith("x-")) { tag.setVendorExtension(key, extension(node.get(key))); } else if(!TAG_KEYS.contains(key)) { result.extra(location + ".externalDocs", key, node.get(key)); } } } return tag; }
ObjectNode on = getObject("get", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(get)", result); on = getObject("put", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(put)", result); on = getObject("post", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(post)", result); on = getObject("head", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(head)", result); on = getObject("delete", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(delete)", result); on = getObject("patch", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(patch)", result); on = getObject("options", obj, false, location, result); if(on != null) { Operation op = operation(on, location + "(options)", result);
output.description(value); ObjectNode schema = getObject("schema", node, false, location, result); if(schema != null) { JsonNode schemaRef = schema.get("$ref"); ObjectNode headersNode = getObject("headers", node, false, location, result); if(headersNode != null) { ObjectNode examplesNode = getObject("examples", node, false, location, result); if(examplesNode != null) { Map<String, Object> examples = Json.mapper().convertValue(examplesNode, Json.mapper().getTypeFactory().constructMapType(Map.class, String.class, Object.class));
public Info info(ObjectNode node, String location, ParseResult result) { if(node == null) return null; Info info = new Info(); String value = getString("title", node, true, location, result); info.title(value); value = getString("description", node, false, location, result); info.description(value); value = getString("termsOfService", node, false, location, result); info.termsOfService(value); ObjectNode obj = getObject("contact", node, false, "contact", result); Contact contact = contact(obj, location, result); info.contact(contact); obj = getObject("license", node, false, location, result); License license = license(obj, location, result); info.license(license); value = getString("version", node, false, location, result); info.version(value); // extra keys Set<String> keys = getKeys(node); for(String key : keys) { if(key.startsWith("x-")) { info.setVendorExtension(key, extension(node.get(key))); } else if(!INFO_KEYS.contains(key)) { result.extra(location, key, node.get(key)); } } return info; }
swagger.setSwagger(value); ObjectNode obj = getObject("info", on, true, "", result); if(obj != null) { Info info = info(obj, "info", result); obj = getObject("paths", on, true, location, result); Map<String, Path> paths = paths(obj, "paths", result); swagger.paths(paths); obj = getObject("definitions", on, false, location, result); Map<String, Model> definitions = definitions(obj, "definitions", result); swagger.setDefinitions(definitions); obj = getObject("parameters", on, false, location, result); obj = getObject("responses", on, false, location, result); Map<String, Response> responses = responses(obj, "responses", result); swagger.responses(responses); obj = getObject("securityDefinitions", on, false, location, result); Map<String, SecuritySchemeDefinition> securityDefinitions = securityDefinitions(obj, "securityDefinitions", result); swagger.setSecurityDefinitions(securityDefinitions); obj = getObject("externalDocs", on, false, location, result); ExternalDocs docs = externalDocs(obj, "externalDocs", result); swagger.externalDocs(docs);
output.description(value); ObjectNode externalDocs = getObject("externalDocs", obj, false, location, result); ExternalDocs docs = externalDocs(externalDocs, location, result); output.setExternalDocs(docs); output.setParameters(parameters(parameters, location, result)); ObjectNode responses = getObject("responses", obj, true, location, result); Map<String, Response> responsesObject = responses(responses, location, result); if(responsesObject != null && responsesObject.size() == 0) {
ObjectNode items = getObject("items", obj, false, location, result); if(items != null) { Property inner = schema(null, items, location, result); ObjectNode examplesNode = getObject("examples", obj, false, location, result); if(examplesNode != null) { Map<String, String> examples = Json.mapper().convertValue(examplesNode, Json.mapper().getTypeFactory().constructMapType(Map.class, String.class, Object.class));
if("array".equals(type)) { ArrayModel am = new ArrayModel(); ObjectNode propertyNode = getObject("properties", node, false, location, result); Map<String, Property> properties = properties(propertyNode, location, result); am.setProperties(properties); ObjectNode itemsNode = getObject("items", node, false, location, result); Property items = property(itemsNode, location, result); if(items != null) { ObjectNode externalDocs = getObject("externalDocs", node, false, location, result); ExternalDocs docs = externalDocs(externalDocs, location, result); impl.setExternalDocs(docs); ObjectNode properties = getObject("properties", node, false, location, result); if(properties != null) { Set<String> propertyNames = getKeys(properties);