public JsonObject build(){ List<KV> flat = flat(); check(flat); Map<String, Object> map = new HashMap<>(); flat.forEach(kv -> { String key = kv.key; Object value = kv.value; parseKeyValue(new KeyParser(key),value,map); }); return JsonObject.of(map); }
public SwaggerDoc(String dir) { this.dir = leap.lang.path.Paths.suffixWithSlash(dir); Map map = null; File swaggerFile = Paths.get(dir).resolve("./swagger.json").toFile(); if(swaggerFile.exists()) { map = JSON.decodeMap(IO.readString(swaggerFile, Charsets.UTF_8)); }else { swaggerFile = Paths.get(dir).resolve("./swagger.yaml").toFile(); if(swaggerFile.exists()) { map = YAML.decode(Resources.createFileResource(swaggerFile).getContent()); } } if(null != map) { this.swagger = JsonObject.of(map); } }
private List<KV> flat(){ List<KV> flat = new ArrayList<>(); list.forEach(kv -> { String key = kv.key; Object value = kv.value; if(value == null || Beans.isSimpleProperty(value.getClass())){ flat.add(new KV(key,value)); }else { JsonObject json = JsonObject.of(JSON.decodeMap(JSON.encode(value))); addFlatList(key,json,flat); } }); return flat; }
public void readTags(List<Map<String,Object>> tags, ApiMetadataBuilder m) { if(null == tags) { return; } for(Map<String,Object> map : tags) { JsonObject tag = JsonObject.of(map); String name = tag.getString(NAME); String desc = tag.getString(DESCRIPTION); m.addTag(new MApiTag(name, name, null ,desc, null)); } }
public MApiParameterBuilder readParameter(Map<String,Object> map) { MApiParameterBuilder mp = new MApiParameterBuilder(); JsonObject p = JsonObject.of(map); readParameterBase(null, p, mp); mp.setLocation(readParameterIn(mp.getName(), p.getString(IN))); return mp; }
protected MProperty readComplexTypeProperty(String name, Map<String,Object> map) { MPropertyBuilder mp = new MPropertyBuilder(); JsonObject p = JsonObject.of(map); mp.setName(name); mp.setRequired(p.get(REQUIRED, Boolean.class)); mp.setType(readType(p)); return mp.build(); }
public MApiResponseBuilder readResponse(String name, Map<String,Object> map) { MApiResponseBuilder mr = new MApiResponseBuilder(); JsonObject resp = JsonObject.of(map); mr.setName(name); mr.setSummary(resp.getString(SUMMARY)); mr.setDescription(resp.getString(DESCRIPTION)); try{ mr.setStatus(Integer.parseInt(name)); }catch(NumberFormatException e) { //not a http status. } JsonObject schema = resp.getObject(SCHEMA); if(null != schema) { mr.setType(readType(schema)); } return mr; }
protected MApiOperationBuilder readOperation(ApiMetadataBuilder m, MApiPathBuilder p, String method, Map<String,Object> map) { MApiOperationBuilder mo = new MApiOperationBuilder(); JsonObject o = JsonObject.of(map);
private Map data(JsonObject swagger) { Map data = JSON.decodeMap(swagger.toString()); swagger = JsonObject.of(data);
public void readSwagger(Map<String,Object> map, ApiMetadataBuilder m) { JsonObject swagger = JsonObject.of(map); String swaggerVersion = swagger.getString(SWAGGER); if(!"2.0".equals(swaggerVersion)) { throw new UnsupportedSpecException("Unsupported swagger version : " + swaggerVersion); } readBase(map, m); readPaths(swagger.getMap(PATHS), m); readSecurityDefinitions(swagger.getMap(SECURITY_DEFINITIONS), m); readDefinitions(swagger.getMap(DEFINITIONS), m); readResponses(swagger.getMap(RESPONSES), m); readTags(swagger.getList(TAGS), m); //todo : security & securityDefinitions. }
public MApiModelBuilder readModel(String name, Map<String,Object> map, SwaggerExtension ex) { MApiModelBuilder mm = new MApiModelBuilder(); JsonObject model = JsonObject.of(map); List<String> requiredProperties = model.getList(REQUIRED); mm.setName(name); mm.setTitle(model.getString(TITLE)); mm.setSummary(model.getString(SUMMARY)); mm.setDescription(model.getString(DESCRIPTION)); mm.setEntity(model.getBoolean(X_ENTITY, false)); Map<String,Object> properties = model.getMap(PROPERTIES); if(null != properties) { List<MApiPropertyBuilder> list = readProperties(properties, requiredProperties, ex); list.forEach(mm::addProperty); } return mm; }
public MApiPropertyBuilder readProperty(String name, Map<String,Object> map, SwaggerExtension ex) { MApiPropertyBuilder mp = new MApiPropertyBuilder(); JsonObject p = JsonObject.of(map); readParameterBase(name, p, mp, ex); mp.setName(name); //yaml read all values to string. mp.setIdentity(p.getBoolean(X_IDENTITY, false)); mp.setUnique(p.getBoolean(X_UNIQUE, false)); mp.setSortable(p.get(X_SORTABLE, Boolean.class)); mp.setFilterable(p.get(X_FILTERABLE, Boolean.class)); mp.setCreatable(p.get(X_CREATABLE, Boolean.class)); mp.setUpdatable(p.get(X_UPDATABLE, Boolean.class)); mp.setExpandable(p.get(X_EXPANDABLE, Boolean.class)); return mp; }
public void readBase(Map<String,Object> map, ApiMetadataBuilder m) { JsonObject swagger = JsonObject.of(map);