@Profile({"dev"}) @Bean public CommandLineRunner swaggerRegistar(ConfigurableApplicationContext context){ returnnew SwaggerInfoRegistar(context); }
/** * use to register swagger api info url to swagger api registry; * * @author liubo */ publicclassSwaggerInfoRegistarimplementsCommandLineRunner{ @Override publicvoidrun(String... args)throws Exception { String url = buildLocalSwaggerDocsUrl(); registerLocalSwaggerUrl(url); }
/** * register the v2/api-docs url * * @param url */ privatevoidregisterLocalSwaggerUrl(String url){ RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new FormHttpMessageConverter()); MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); body.add("project", getApiTitle()); body.add("url", url); ResponseEntity<Map> re = restTemplate.postForEntity(getSwaggerRegisterUrl(), body, Map.class); if (HttpStatus.OK.equals(re.getStatusCode())) { logger.info("swagger api registered success to {}", getSwaggerRegisterUrl()); } else { logger.warn("swagger api registered failed [{}]", re.getBody().get("msg")); } } }