Springboot Swagger вкратце - PullRequest
       6

Springboot Swagger вкратце

0 голосов
/ 03 января 2019

Пока я внедрял 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 -->
  1. Вам нужен класс конфигурации 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) {

}
  1. Вам необходимо предоставить доступ к этим ресурсам, если ваш API защищен какой-либо аутентификацией.

    • // http.anonymous () отключить (). [анонимно]

    • http.authorizeRequests () .antMatchers ( "/ чванство-ресурсы / ", "Развязность-ресурсы / конфигурации / щ / *", "/Swagger-ui.html", "/ Webjars / **", "Favicon.ico") permitAll ();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...