Swagger(一)SpringBoot統合Swagger 2の簡単な例


転入先http://blog.csdn.net/u010919351/article/details/70105863
Swagger RESTfulスタイルのWebサービスを生成、記述、呼び出し、可視化するための仕様と完全なフレームワークです.全体的な目標は、クライアントとファイルシステムをサーバとして同じ速度で更新することです.ファイルのメソッド、パラメータ、モデルはサーバ側のコードに緊密に統合され、APIが常に同期を維持できるようにします.Swaggerは、強力なAPIを導入管理および使用するのにこんなに簡単ではありません.
ここでは、まずプロジェクト構造を見てみましょう.
次は基本的な手順です
一.MAVEN依存を追加する
[plain]  view plain
 copy
  
    io.springfox  
    springfox-swagger2  
    2.2.2  
  
  
    io.springfox  
    springfox-swagger-ui  
    2.2.2  
  
  
    org.codehaus.jackson  
    jackson-core-asl  
    1.9.13  
  
二.Swagger構成クラスの作成
[java]  view plain
 copy
@Configuration  
@EnableSwagger2  
public class Swaggers {  
  
    @Bean  
    public Docket swaggerSpringMvcPlugin() {  
        ApiInfo apiInfo = new ApiInfo("sample of springboot", "sample of springboot", null, null, null, null, null);  
        Docket docket = new Docket(DocumentationType.SWAGGER_2).select().paths(regex("/user/.*")).build()  
                .apiInfo(apiInfo).useDefaultResponseMessages(false);  
        return docket;  
    }  
  
  
    /*private ApiInfo apiInfo() { 
        return new ApiInfoBuilder().title(「テストAPI」) 
                .description(「樊亜のテストAPI 1」) 
                .version("1.0.0") 
                .build(); 
    }*/  
    /* @Bean 
        public Docket createRestApi() { 
            return new Docket(DocumentationType.SWAGGER_2) 
                    .apiInfo(apiInfo()) 
                    .select() 
                    .apis(RequestHandlerSelectors.basePackage("com.didispace.web")) 
                    .paths(regex("/user/.*")) 
                    .build(); 
        } 
    */  
  
}  
もちろんチェーンプログラミングの方法で実現することもできますが、ここではNEWを使っています.
三.Controllerの作成
[java]  view plain
 copy
@RestController  
@RequestMapping("/user")  
@Api(value = "Shop")  
public class SpringBootController {  
  
    @ApiOperation(value = 「ハローワールドを取得」、 notes = 「単純SpringMVCリクエスト」)  
    @RequestMapping("/")  
    String home() {  
        return "HELLO WORLD";  
    }  
  
    @ApiOperation(value = 「A+Bを取得」、 notes = 「urlのclassNoとurlのstudentNameから要求パラメータを取得する文字列加算、RestFulスタイルの要求」)  
    @ApiImplicitParams({@ApiImplicitParam(name = "classNo", value = 「クラス番号」、 required = true, dataType = "String"),  
    })  
    @RequestMapping(value = "/class/{classNo}/to/{studentName}", method = RequestMethod.GET)  
    String world(@PathVariable("classNo") String classNo, @PathVariable("studentName") String studentName) {  
        return classNo + "  " + studentName;  
    }  
  
  
}  
四.アプリケーション読み込みクラスの作成
[java]  view plain
 copy
@SpringBootApplication  
public class Application {  
    public static void main(String[] args) {  
        SpringApplication.run(Application.class,args);  
    }  
  
}  
SwaggerはデフォルトですべてのControllerの中のRequestMappingメソッドをAPIに生成しますが、実際には標準インタフェース(ページに戻るようなControllerメソッドは必要ありません)だけが必要で、以下の方法でAPIを生成する方法の要求を設定することができます. 
この機能は基本的に実現され、アドレスにアクセスすることができます.http://localhost:8080/swagger-ui.html/
生成されたAPIの表示
Swaggerに関する注記を添付します.
最も一般的な5つの注記
@Api:     ,  Controller   
@ApiOperation:          ,       
@ApiParam@ApiModel@ApiProperty:        ,         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

  • その他若干
    @ApiResponseHTTP    1   
    @ApiResponsesHTTP      
    @ApiIgnoreAPI 
    
    @ApiClass
    @ApiError
    @ApiErrors
    
    @ApiParamImplicit
    @ApiParamsImplicit

    この号は主に機能を先に走るため、次の号は内部内容を詳しく説明します.
    プロジェクトのアドレス:https://github.com/FANYA/Learn.git
    参考ブログ:http://www.jianshu.com/p/8033ef83a8ed
                    http://blog.csdn.net/catoop/article/details/50668896