集成swagger

对于许多开发来说,编写这个yml或json格式的描述文件,本身也是有一定负担的工作,特别是在后面持续迭代开发的时候,往往会忽略更新这个描述文件,直接更改代码。久而久之,这个描述文件也和实际项目渐行渐远,基于该描述文件生成的接口文档也失去了参考意义。所以作为Java届服务端的大一统框架Spring,迅速将Swagger规范纳入自身的标准,建立了Spring-swagger项目,后面改成了现在的Springfox。通过在项目中引入Springfox,可以扫描相关的代码,生成该描述文件,进而生成与代码一致的接口文档和客户端代码。

springboot整合swagger
1、添加pom依赖

```
  <!-- 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>
    <dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-models</artifactId>
      <version>1.5.21</version>
    </dependency>
```


2、创建swaggerconfig类
```

package com.seckill.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author m
 * @className SwaggerConfig
 * @description SwaggerConfig
 * @date 2020/6/1
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //为当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.seckill.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 构建API文档的详细信息函数
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("miaosha项目RESTful APIs")
                //创建人
                .contact(new Contact("babbo","127.0.0.1:8080","null"))
                //描述
                .description("miaosha项目后台api接口文档")
                //版本号
                .version("1.0")
                .build();
    }
}

```
3、在controller中添加注解的方式来创建api,
用@API、@ApiOperation、@ApiResponce等注解,来实现对swagger的标记
```
@Api(value = "登录",description = "登录结课")
@Controller
public class LoginController {

    @Autowired
    MiaoshaUserService miaoshaUserService;

    private static Logger log= LoggerFactory.getLogger(LoginController.class);

    @RequestMapping("/tologin")
    public String toLogin(){

    return "login";
    }
    @RequestMapping("/dologin")
    @ApiOperation("登录")
    @ApiResponse(code=100,message = "成功")
    public Msg doLogin(HttpServletResponse response, @Valid LoginVo loginVo){
        log.info(loginVo.toString());
        //登录
        miaoshaUserService.login(response,loginVo);
       return Msg.success();
    }
```
秒杀controller
```

@Api(value = "秒杀",description = "秒杀接口")
@Controller
@RequestMapping("/miaosha")
public class MiaoshaController {

    @Autowired
    RedisService redisService;

    @Autowired
    GoodsService goodsService;

    @Autowired
    MiaoshaUserService miaoshaUserService;

    @Autowired
    OrderService orderService;

    @Autowired
    MiaoshaService miaoshaService;

    @ApiOperation(httpMethod = "POST",value = "秒杀",notes = "立即秒杀")
    @ApiImplicitParam(name = "id",value = "商品id",required = true ,dataType = "Long")
    @RequestMapping("/domiaosha")
    public String list(
            Model model, MiaoshaUser user,
            @RequestParam("goodsId")long goodsId){
        model.addAttribute("user",user);
        if (user==null){
            return "login";
        }
        //判断库存
        GoodsVo goods=goodsService.getGoodVoByGoodsId(goodsId);
        int stock=goods.getStockCount();
        if (stock<=0){
            model.addAttribute("errmsg",Msg.miaoshaover().getMsg());
            return "miaosha_fail";
        }
        //判断是否已经秒杀成功过
        MiaoshaOrder order=orderService.getMiaoshaOrderByUserIdGoodsId(user.getId(),goodsId);
        if (order!=null){
            model.addAttribute("errmsg",Msg.repeatemiaosha().getMsg());
            return "miaosha_fail";
        }
        //减库存,下订单,写入秒杀订单
        OrderInfo orderInfo=miaoshaService.miaosha(user,goods);
        model.addAttribute("orderInfo",orderInfo);
        model.addAttribute("goods",goods);

       return "order_detail";
    }


```
4、启动秒杀项目,访问swagger-ui.html

这个进入的主页面,可以看到代码中注解写到的都会概括
 

例如,进入get,就可以进行相应的get方法的测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,目前最新版本的Spring Boot是2.x系列,并没有Spring Boot 3。不过,我可以为您介绍一下Spring Boot 2.x集成Swagger的方法。 Swagger是一个用于构建、文档化和调试RESTful API的开源工具。它可以生成具有交互式文档和代码生成功能的API文档。 要在Spring Boot 2.x中集成Swagger,您需要执行以下步骤: 1. 添加Swagger依赖:在您的项目的pom.xml文件中,添加Swagger的依赖项。例如: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` 2. 创建Swagger配置类:创建一个配置类,用于配置Swagger。例如,创建一个名为SwaggerConfig的类,并添加@Configuration和@EnableSwagger2注解。 ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.example.controller")) .paths(PathSelectors.any()) .build(); } } ``` 3. 配置Swagger属性:您可以根据需要配置Swagger的属性,例如API文档的标题、描述等。在上面的配置类中,您可以通过调用Docket对象的方法来设置这些属性。 4. 启动应用程序:启动您的Spring Boot应用程序,并访问http://localhost:8080/swagger-ui.html,您将看到自动生成的API文档界面。 这样,您就成功地将Swagger集成到了Spring Boot 2.x中。您可以使用Swagger的注解来进一步定制和描述您的API,例如@Api、@ApiOperation等。 希望这个简单的介绍对您有帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值