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つの注記 1 2 3 4 5 1 2 3 4 5
その他若干
この号は主に機能を先に走るため、次の号は内部内容を詳しく説明します.
プロジェクトのアドレス:https://github.com/FANYA/Learn.git
参考ブログ:http://www.jianshu.com/p/8033ef83a8ed
http://blog.csdn.net/catoop/article/details/50668896
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: ,
その他若干
@ApiResponse:HTTP 1
@ApiResponses:HTTP
@ApiIgnore: API
@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