@TaskAction public void generateSpec() throws IOException, GenerateException { ClassLoader loader = projectClassLoader(); Set<Class<?>> classes = new HashSet<>(); for (String pkg : apiPackages) { Reflections reflections = new Reflections( new ConfigurationBuilder() .addClassLoaders(loader) .addUrls(ClasspathHelper.forPackage(pkg, loader)) .setExpandSuperTypes(false) .filterInputsBy(new FilterBuilder().includePackage(pkg))); Set<Class<?>> springMVCClasses = reflections.getTypesAnnotatedWith( org.springframework.web.bind.annotation.RestController.class); classes.addAll(springMVCClasses); } SpringMvcApiReader reader = new SpringMvcApiReader(new Swagger(), log); Swagger swagger = reader.read(classes); for (SwaggerFilter filter : filters) { filter.apply(swagger); } Yaml.pretty().writeValue(swaggerFile, swagger); }
break; case yaml: FileUtils.write(new File(dir, fileName + ".yaml"), Yaml.pretty().writeValueAsString(swagger), encoding); break;
private String generateYaml(int hash,final Set<Class<?>> classes,URL url){ log.log(Level.FINEST, "Generating {0} response for context", url); Swagger swagger = createSwagger(classes,url); try { String swaggerYaml = Yaml.pretty().writeValueAsString(swagger); swaggerMap.put(hash, new CachedDocument(hash,url,swaggerYaml)); return swaggerYaml; } catch (JsonProcessingException ex) { log.log(Level.WARNING, "Could not generate {0} - {1}", new Object[]{url.toString(), ex.getMessage()}); } log.log(Level.WARNING, "Could not generate {0} - null", new Object[]{url.toString()}); return null; }
/** * Convert given API definition in YAML format. * @param api The API model to serialize * @param pretty Whether to pretty format the output * @return The API definition as YAML */ static String asYaml(Swagger api, boolean pretty) { try { return pretty ? Yaml.pretty().writeValueAsString(api) : Yaml.mapper().writeValueAsString(api); } catch (Exception e) { throw new ApiConfigurationException(e); } }
@Override protected String getApiOutput(OutputType outputType, Swagger api, boolean pretty) throws Exception { switch (outputType) { case YAML: return pretty ? Yaml.pretty().writeValueAsString(api) : Yaml.mapper().writeValueAsString(api); case JSON: default: return pretty ? Json.pretty(api) : Json.mapper().writeValueAsString(api); } }
writer.write(jsonWriter.writeValueAsString(swagger)); } else if ("yaml".equals(this.payload)) { writer.write(Yaml.pretty().writeValueAsString(swagger));
if (settings.isDev()) { yaml = Yaml.pretty().writeValueAsString(swagger); } else { yaml = Yaml.mapper().writeValueAsString(swagger);
if (settings.isDev()) { yaml = Yaml.pretty().writeValueAsString(swagger); } else { yaml = Yaml.mapper().writeValueAsString(swagger);
headers.add("Content-Type", "application/yaml"); if (prettyPrint) { out.write(Yaml.pretty().writeValueAsBytes(data)); } else { out.write(Yaml.mapper().writeValueAsBytes(data));
this.get.addResponseHeader(Operation.CONTENT_TYPE_HEADER, Operation.MEDIA_TYPE_TEXT_YAML); writer = Yaml.pretty(); } else { this.get.addResponseHeader(Operation.CONTENT_TYPE_HEADER,
page.setContent(Yaml.pretty().writeValueAsString(swagger)); } catch (JsonProcessingException e) { logger.error("Unexpected error", e);
page.setContent(Yaml.pretty().writeValueAsString(swagger)); } catch (JsonProcessingException e) { logger.error("Unexpected error", e);
/** * Publish application routes as Swagger spec. * * @param app An application. */ public void install(final Jooby app) { requireNonNull(app, "Application is required."); ObjectMapper mapper = Json.mapper(); ObjectWriter yaml = Yaml.pretty(); app.use(new SwaggerModule(mapper)); app.get(path + "/swagger.json", path + "/:tag/swagger.json", req -> { SwaggerBuilder sb = req.require(SwaggerBuilder.class); Swagger swagger = sb.build(req.param("tag").toOptional(), predicate, tag, Swagger.class); byte[] json = mapper.writer().withDefaultPrettyPrinter().writeValueAsBytes(swagger); return Results.json(json); }).name("swagger(json)"); app.get(path + "/swagger.yml", path + "/:tag/swagger.yml", req -> { SwaggerBuilder sb = req.require(SwaggerBuilder.class); Swagger swagger = sb.build(req.param("tag").toOptional(), predicate, tag, SwaggerYml.class); byte[] yml = yaml.writeValueAsBytes(swagger); return Results.ok(yml).type("application/yaml"); }).name("swagger(yml)"); if (ui) { app.assets(path + "/ui/**", "/META-INF/resources/webjars/swagger-ui/" + wjversion(app.getClass()) + "/{0}"); app.get(path, path + "/:tag", new SwaggerHandler(path)) .name("swagger(html)") .produces(MediaType.html); } }