@@ -87,7 +87,7 @@ public Swagger read(String location, List<AuthorizationValue> auths, boolean res
8787 }
8888
8989 public SwaggerDeserializationResult readWithInfo (String swaggerAsString ) {
90- if (swaggerAsString == null ) {
90+ if (swaggerAsString == null ) {
9191 return new SwaggerDeserializationResult ().message ("empty or null swagger supplied" );
9292 }
9393 try {
@@ -102,13 +102,38 @@ public SwaggerDeserializationResult readWithInfo(String swaggerAsString) {
102102 SwaggerDeserializationResult result = new Swagger20Parser ().readWithInfo (node );
103103 if (result != null ) {
104104 result .setSwagger (new SwaggerResolver (result .getSwagger (), new ArrayList <AuthorizationValue >(), null ).resolve ());
105- }
106- else {
107- result = new SwaggerDeserializationResult ().message ("Definition does not appear to be a valid Swagger format" );
105+ } else {
106+ result = new SwaggerDeserializationResult ().message ("Definition does not appear to be a valid Swagger format" );
108107 }
109108 return result ;
109+ } catch (Exception e ) {
110+ return new SwaggerDeserializationResult ().message ("malformed or unreadable swagger supplied" );
110111 }
111- catch (Exception e ) {
112+ }
113+
114+ public SwaggerDeserializationResult readWithInfo (String swaggerAsString , boolean resolve ) {
115+ if (swaggerAsString == null ) {
116+ return new SwaggerDeserializationResult ().message ("empty or null swagger supplied" );
117+ }
118+ try {
119+ JsonNode node ;
120+ if (swaggerAsString .trim ().startsWith ("{" )) {
121+ ObjectMapper mapper = Json .mapper ();
122+ node = mapper .readTree (swaggerAsString );
123+ } else {
124+ node = DeserializationUtils .readYamlTree (swaggerAsString );
125+ }
126+
127+ SwaggerDeserializationResult result = new Swagger20Parser ().readWithInfo (node );
128+ if (result != null ) {
129+ if (resolve ) {
130+ result .setSwagger (new SwaggerResolver (result .getSwagger (), new ArrayList <AuthorizationValue >(), null ).resolve ());
131+ }
132+ } else {
133+ result = new SwaggerDeserializationResult ().message ("Definition does not appear to be a valid Swagger format" );
134+ }
135+ return result ;
136+ } catch (Exception e ) {
112137 return new SwaggerDeserializationResult ().message ("malformed or unreadable swagger supplied" );
113138 }
114139 }
0 commit comments