Swagger | Swagger-REST APIドキュメント生成ツール

Swaggerは、強力で使いやすいAPI開発者ツールキットであり、チームや個人に適しており、APIのライフサイクル全体(設計とドキュメントからテストと展開まで)で開発できます。
Swaggerは、オープンソースの無料の市販ツールで構成されており、誰でも(テクニカルエンジニアからストリートスマートプロダクトマネージャーまで)誰でも好きな素晴らしいAPIを構築できます。
Swaggerは
、チームのソフトウェア品質ツールのリーダーであるSmartBear Software によって構築されています。SmartBearは、Swagger、SoapUI、QACompleteなど、ソフトウェア分野で有名な企業に遅れをとっています。

1つは、Mavenの依存関係

		<!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

2、Swaggerを登録(SwaggerConfig)

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    
    
    // 配置swagger2核心配置 docket
    @Bean
    public Docket createRestApi() {
    
    
        return new Docket(DocumentationType.SWAGGER_2) // 指定api类型为swagger2
                .groupName("jonsson") // 分组
                .apiInfo(apiInfo()) // 用于定义api文档汇总信息
                .select() // 通过.select()方法,去配置扫描接口。RequestHandlerSelectors配置如何扫描接口
                /*
                    // RequestHandlerSelectors配置方法
                    any() // 扫描所有,项目中的所有接口都会被扫描到
                    none() // 不扫描接口
                    // 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
                    withMethodAnnotation( final Class<? extends Annotation> annotation)
                    // 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
                    withClassAnnotation( final Class<? extends Annotation> annotation)
                    basePackage( final String basePackage) // 根据包路径扫描接口
                */
                .apis(RequestHandlerSelectors.basePackage("com.jonsson.controller")) // 指定controller包
                /*
                    // 配置如何通过path过滤,即这里只扫描请求以/开头的接口
                    any() // 任何请求都扫描
                    none() // 任何请求都不扫描
                    regex(final String pathRegex) // 通过正则表达式控制
                    ant(final String antPattern) // 通过ant()控制
                */
                .paths(PathSelectors.any()) // 所有controller
                .build();
    }

    //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
    
    
        return new ApiInfoBuilder()
                .title("Spring Boot 使用 Swagger2 构建RESTful API") // 文档页标题
                .contact(new Contact("jonsson", "https://blog.csdn.net/y1534414425", "[email protected]")) // 联系人信息
                .version("1.0") // 文档版本号
                .description("API 描述") // 描述
                .build();
    }
}

3、エンティティ

@Data
@ApiModel("汽车")
public class Car {
    
    
    @ApiModelProperty("主键")
    private Integer id;
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("价格")
    private Integer price;
    @ApiModelProperty("颜色")
    private String colour;
    @ApiModelProperty("品牌")
    private String brand;
}

4、コントローラー

@Api("汽车接口")
@RestController
@Slf4j
public class CarController {
    
    
    @Autowired
    private CarService carService;

    @ApiOperation(value = "查询汽车列表")
    @RequestMapping(value = "/carPage/{pageNum}/{pageSize}", method = RequestMethod.POST)
    public ResultVO<Object> carPage(@ApiParam("当前页") @PathVariable("pageNum") Integer pageNum, @ApiParam("页大小") @PathVariable("pageSize") Integer pageSize) {
    
    
        IPage<Car> carIPage = carService.findPage(pageNum, pageSize);
        log.debug(carIPage.toString());
        if (carIPage.getRecords().size() > 0) {
    
    
            return ResultVOUtils.success(carIPage.getRecords());
        } else {
    
    
            return ResultVOUtils.error("错误");
        }
    }
}

構成が完了したら、それを実行してAPIドキュメントを生成でき、オンラインテストインターフェースもサポートします。ブラウザに入力:

http://localhost:8081/swagger/swagger-ui.html

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/y1534414425/article/details/105647307