Ich antworte dies mit Swagger2-Konfiguration in einem Groß-basierten Spring-Boot-Anwendung. Im Folgenden sind die für Swagger2 erforderlichen Konfigurationen aufgeführt.
hinzufügen Gradle Configuartion
hinzufügen Gradle Abhängigkeiten innerhalb build.gradle Datei
dependencies {
compile("io.springfox:springfox-swagger2:2.0.2")
compile("io.springfox:springfox-swagger-ui:2.0.2")
}
Swagger2 Confugration Klasse
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket userApi() {
return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build().pathMapping("/")
.directModelSubstitute(LocalDate.class, String.class)
.genericModelSubstitutes(ResponseEntity.class)
.alternateTypeRules(newRule(
typeResolver.resolve(DeferredResult.class,
typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
typeResolver.resolve(WildcardType.class)))
.useDefaultResponseMessages(false)
.globalResponseMessage(RequestMethod.GET,
newArrayList(new ResponseMessageBuilder().code(500).message("500 message")
.responseModel(new ModelRef("Error")).build()))
.securitySchemes(newArrayList(apiKey())).securityContexts(newArrayList(securityContext()))
.apiInfo(apiInfo());
}
@Autowired
private TypeResolver typeResolver;
private ApiKey apiKey() {
return new ApiKey("mykey", "api_key", "header");
}
private SecurityContext securityContext() {
return SecurityContext.builder().securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("/anyPath.*")).build();
}
List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return newArrayList(new SecurityReference("mykey", authorizationScopes));
}
@Bean
SecurityConfiguration security() {
return new SecurityConfiguration("123456", "test-app-realm", "clientapp", "apiKey");
}
@Bean
UiConfiguration uiConfig() {
return new UiConfiguration("validatorUrl");
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo("DSM API", "API for DSM", "1.0.0", "termsOfServiceUrl",
"[email protected]", null, null);
return apiInfo;
}
}
hinzufügen Swagger UI
Laden Sie die Swagger UI von Github.Kopieren Sie den dist-Ordner in Ihrem src/main/resources/static und benennen dist stolzieren
HomeController.class
@Api(basePath = "/", value = "/", description = "Home Controller")
@Controller
public class HomeController {
@RequestMapping("/")
public String home() {
return "redirect:swagger-ui.html";
}
}
MyApplication.class
@SpringBootApplication
@ComponentScan(basePackageClasses = SwaggerConfig.class)
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
Konfigurieren Sie Ihre Spring-Boot-Anwendung mit Abhängigkeiten und starten Sie t er API.
die URL wird http://localhost:8080/v2/swagger-ui.html Sie können auch dies wie oben beantworten anpassen.
Haben Sie diese Arbeit bekommen? Ich folge diesem Blogpost nicht, da sich die Dinge sehr verändert haben, aber ich bekomme auch keine Arbeit. Siehe https://github.com/martypitt/swagger-springmvc für aktualisierte Anweisungen –
Ich habe alles richtig mit SpringBoot funktioniert (obwohl es ziemlich lange gedauert hat!) Wo bist du auf und ich werde versuchen und helfen –
Ich habe es funktioniert aber erinnere dich nicht an die Ursache –