swagger的API自动生成文档、自动生成其他语言请求文档、所有请求导入postman

本文介绍如何使用Swagger自动生成API文档,并演示了如何将其导入Postman进行本地调试,还介绍了如何生成不同语言的客户端代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、swagger的API自动生成文档

    1.maven引入swagger的相关jar

<swagger.version>2.6.1</swagger.version>
    
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger.version}</version>
</dependency>

    2.配置SwaggerConfig 配置类

    @Profile指定了只在dev test 环境有效,正式环境是访问不到的

    也可以指定Header参数

@EnableSwagger2
@Configuration
@Profile({"dev", "test"})
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {

        //添加head参数start
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<Parameter>();
        tokenPar.name("client").description("渠道").defaultValue("SENIOR_TEACH").modelRef(new ModelRef("string"))
                .parameterType("header").required(true).build();
        pars.add(tokenPar.build());
        //添加head参数end

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.lexue.edu"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Lexue User Module APIs")
                .description("Lexue User Module APIs")
                .version("1.0")
                .build();
    }

}

3.Controller类中增加文档标签

@Api @ApiOperation @ApiParam @ApiIgnore等

@Api(tags={"account"})
@RestController("accountController")
@Slf4j
public class AccountController {

    @ApiOperation(value = "查询用户余额",notes = "查询用户余额信息")
    @GetMapping(value="/account/{version}/balance")
    @UserLoggedCheck
    public AppResponse<AccountBalanceResponse> balance(@PathVariable("version") String version
            ,@ApiIgnore UserLoggedInfo userLoggedInfo){
        AppResponse response;

        response.setTsrp(System.currentTimeMillis());
        return response;

    }

    @GetMapping(value="/account/{version}/trans")
    @UserLoggedCheck
    @ApiOperation(value = "查询账户交易记录", notes = "查询账户交易记录,分页查询")
    public AppResponse<PageContent<AccountTransResponse>> trans(@PathVariable("version") String version
            ,@ApiParam(value = "当前页码",defaultValue = "1") @RequestParam(name = "cur",required = false,defaultValue = "1") int cur
            ,@ApiParam(value = "页面大小",defaultValue = "20") @RequestParam(name = "size",required = false,defaultValue = "20") int size
            ,@ApiIgnore UserLoggedInfo userLoggedInfo){
        AppResponse response;
        response.setTsrp(System.currentTimeMillis());
        return response;
    }
}

4.返回对象中增加swagger的标签

@ApiModelProperty

@Data
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class AccountTransResponse {

   @ApiModelProperty(value = "交易类型",example = "1")
   @JsonProperty("trtp")
   private TransactionRecordType transType ;

   @ApiModelProperty(value = "交易流水",example = "ls1323454561313")
   @JsonProperty("trsl")
   private String transSerial;

   @ApiModelProperty(value = "交易金额,单位分",example = "10000")
   @JsonProperty("trac")
   private long transAccount  ;

   @ApiModelProperty(value = "交易时间戳,毫秒",example = "1515746099000")
   @JsonProperty("trts")
   private long transTimestamp;

}

5.查询swagger文档,请求地址:http://10.10.200.165:10901/swagger-ui.html


 二:swagger将生成的文档请求,导入postman列表中,便于本地调试

以上述http://10.10.200.165:10901/swagger-ui.html为例


生成请求Json的地址:http://10.10.200.165:10901/v2/api-docs

之后postman的import from link引入json请求地址,具体看下图


导入后的具体效果图如下:



三:swagger生成其他语言请求的文档

1.前提安装java 引入swagger-codegen-cli-2.3.0.jar(放置到本地) 

 swagger json url,上面的http://10.10.200.165:10901/v2/api-docs便可以

2.java -jar swagger-codegen-cli-2.3.0.jar 可以查看swagger能生成文档支持的语言


3.java -jar swagger-codegen-cli-2.3.0.jar generate -i http://10.10.200.165:10904/v2/api-docs?group=learn -l typescript-angular -o typejs

上述就是执行生成angular语言文档的命令行,在当前文件夹下创建typejs 存储生成的文档

【参数说明】

  -jar 指定 swagger-codegen-cli-2.2.1.jar 的位置,绝对路径、相对路径均可;

  -i 指定 swagger.json 的位置,本地路径、网络路径均可;

  -l 指定客户端代码的语言;

  -o 指定代码生成的位置;

  --model-package 指定model代码的包名;

  --api-package 指定api代码的包名;

生成的文件目录情况



4.最后的具体文件如下图,可以修改一下,实现快速开发




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值