Пока я внедрял Swagger, я нашел много помощи от сообществ / блогов, но в одном месте. Поэтому я суммирую критические, просто чтобы сэкономить время для других ..
1. Нужно включить зависимости ..
<!-- Added for Swagger Dependency -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
<scope>compile</scope>
</dependency>
<!--END Added for Swagger Dependency -->
Вам нужен класс конфигурации Swagger ..
@ Configuration
@ EnableSwagger2
открытый класс SwaggerConfig расширяет WebMvcConfigurationSupport {
@Bean
public Docket productApi() {
/* Swagger : For Particular Rest Service under somepackge, someEndpoint
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.abcdli.somepackge.controller"))
.paths(PathSelectors.regex("/someEndpoint.*")).build();*/
/* Swagger : Simple method for all the apis
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build();
*/
/*
Swagger : Simple method for all the apis under somepackage only
*/
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.abcdli.yourpackage.controller"))
.paths(PathSelectors.any())
.build()
/*
Swagger : metaInfo() is used for enrichment with details
ApiInfo(title, description, version, termsOfServiceUrl, contactName, license, licenseUrl);
*/
.apiInfo(metaInfo());
}
private ApiInfo metaInfo() {
String description = ;
return new ApiInfoBuilder()
.title("YOUR APPLICATION NAME")
.description(description)
.version("1.0.0.1")
.contact(new springfox.documentation.service.Contact("TEAM","www.mw.com","mw.abcd.com"))
.build();
}
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-
ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3. Теперь страница Swagger готова. Теперь нужно настроить контроллер, методы и модели. Это очень просто.
/*
Registering the RestAPI
*/
@Api(value="YourController",description="some description")
public class YourController {
@RequestMapping(value = "/path", method = RequestMethod.POST,
consumes = {
"application/JSON" }, produces = { "application/JSON" })
/*
Registering the method
*/
@ApiOperation(value="Adding a method",response=Response.class)
public ResponseEntity<Response> addMethodDetails(
@RequestBody modifyReq) {
}
Вам необходимо предоставить доступ к этим ресурсам, если ваш API защищен какой-либо аутентификацией.
// http.anonymous () отключить (). [анонимно]
http.authorizeRequests ()
.antMatchers ( "/ чванство-ресурсы / ",
"Развязность-ресурсы / конфигурации / щ / *",
"/Swagger-ui.html",
"/ Webjars / **",
"Favicon.ico") permitAll ();.