SpringBoot swaggerによるRest Apiドキュメント化
3661 ワード
swaggerはユーザーが1つのhtml 5 webページの中で、APIに対してドキュメント化とインタラクティブな利点を行うことを許可します:機能が豊富です:多種の注釈をサポートして、自動的にインタフェースのドキュメントのインタフェースを生成して、インタフェースでAPIのインタフェースの機能をテストすることをサポートします;タイムリーな更新:開発の過程で少し注釈を書く時間をかけて、タイムリーにAPIドキュメントを更新することができて、安心して力を節約することができます;統合が簡単:pom依存性と簡単な構成を追加することで、アプリケーションに組み込まれたAPIインタフェースドキュメントインタフェースを同時にパブリッシュでき、独立したサービスを導入する必要はありません.
swaggerドキュメントの実装追加依存性は、主にswagger 2コアパケットおよびswagger-uiインタフェースパケットの追加依存性 である. apiページ構成の基本情報 swagger-uiをspring boot環境に曝すのは主にspring mvcを構成するいくつかのリソースブロック である. controllerで自分のapiドキュメントを書くのは主にパラメータとインタフェースの説明 にある. .propertiesファイルを構成するこのファイルの構成は非常に重要で、主にspringfoxにある.documentation.swagger.v2.ホストの構成は非常に重要で、アクセスするswagger-ui.htmlページの場合.アクセスパスが統一されていない場合、ドメイン間で問題が発生する可能性があります. アクセスページ上のhostパスにswagger-uiを加える.htmlでページにアクセスできますhttp://127.0.0.1:8080/swagger-ui.html github url:springbootrestswagger
swaggerドキュメントの実装
io.springfox
springfox-swagger2
2.7.0
io.springfox
springfox-swagger-ui
2.7.0
/**
* 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();
}
}
/**
* 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/");
}
}
@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);
}
}
springfox.documentation.swagger.v2.host=127.0.0.1:8080
springfox.documentation.swagger.v2.path=/api
server.port=8080
server.context-path=/rest