SpringBoot swaggerによるRest Apiドキュメント化


swaggerはユーザーが1つのhtml 5 webページの中で、APIに対してドキュメント化とインタラクティブな利点を行うことを許可します:機能が豊富です:多種の注釈をサポートして、自動的にインタフェースのドキュメントのインタフェースを生成して、インタフェースでAPIのインタフェースの機能をテストすることをサポートします;タイムリーな更新:開発の過程で少し注釈を書く時間をかけて、タイムリーにAPIドキュメントを更新することができて、安心して力を節約することができます;統合が簡単:pom依存性と簡単な構成を追加することで、アプリケーションに組み込まれたAPIインタフェースドキュメントインタフェースを同時にパブリッシュでき、独立したサービスを導入する必要はありません.
swaggerドキュメントの実装
  • 追加依存性は、主にswagger 2コアパケットおよびswagger-uiインタフェースパケットの追加依存性
  • である.
          
                io.springfox
                springfox-swagger2
                2.7.0
            
            
                io.springfox
                springfox-swagger-ui
                2.7.0
            
    
  • apiページ構成の基本情報
  • /**
     * Created by Sean on 2018/10/10
     *Api          
     *             。
     *            spring-boot       controller     ,
     *       API              
     * @author Sean
     */
    @Configuration
    @EnableSwagger2
    public class Swagger2 {
    
    
        @Bean
        public Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.voicecyber"))
                    .paths(PathSelectors.any())
                    .build();
        }
        private ApiInfo apiInfo(){
            return new ApiInfoBuilder()
                    .title(" RESTful APIs")
                    .description(" Rest  Server api    ")
                    .version("1.0")
                    .build();
        }
    }
    
  • swagger-uiをspring boot環境に曝すのは主にspring mvcを構成するいくつかのリソースブロック
  • である.
    /**
     * Created by Sean on 2018/10/10
     * swagger-ui       spring-boot  
     * @author Sean
     */
    @Component
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/js/**").addResourceLocations("classpath:/js/");
            registry.addResourceHandler("swagger-ui.html")
                    .addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**")
                    .addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }
    
  • controllerで自分のapiドキュメントを書くのは主にパラメータとインタフェースの説明
  • にある.
    @Api(value = "RestApi", description = "Rest Api Server")
    @RestController
    @RequestMapping("api")
    public class RestApiController {
        /**
         *             RequestMethod       ,            Rest
         */
        @ApiOperation(value = "    ", notes = "      ")
        @ApiImplicitParam(name = "type", value = "       (name ,sex)", paramType = "query", dataType = "string")
        @RequestMapping(value = "info", method = RequestMethod.GET)
        @ResponseBody
        public ResponseEntity getUserInfo(String type) {
            System.out.println(type);
            return new ResponseEntity("this is user info ", HttpStatus.OK);
        }
       }
    
  • .propertiesファイルを構成するこのファイルの構成は非常に重要で、主にspringfoxにある.documentation.swagger.v2.ホストの構成は非常に重要で、アクセスするswagger-ui.htmlページの場合.アクセスパスが統一されていない場合、ドメイン間で問題が発生する可能性があります.
    springfox.documentation.swagger.v2.host=127.0.0.1:8080
    springfox.documentation.swagger.v2.path=/api
    server.port=8080
    server.context-path=/rest
    
  • アクセスページ上のhostパスにswagger-uiを加える.htmlでページにアクセスできますhttp://127.0.0.1:8080/swagger-ui.html github url:springbootrestswagger