Swagger的使用

swagger是什么?有什么用?

在这里插入图片描述
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

有三个重要的作用:

  • 将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;
  • 当接口更新之后,只需要修改代码中的 Swagger 描述就可以实时生成新的接口文档了,从而规避了接口文档老旧不能使用的问题
  • 通过 Swagger 页面,我们可以直接进行接口调用,降低了项目开发阶段的调试成本。

最终测试页面:
大概是这个样子的,可以直接进行测试,不需要写前端页面。
在这里插入图片描述

如何使用?

  1. 引入依赖
<project.swagger.version>3.0.0</project.swagger.version>


<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>${project.swagger.version}</version>
</dependency>
  1. 配置文件

在项目下键一个config包,写一个类用来做swagger的配置

代码:

@Configuration
public class SwaggerConfiguration {

    public Docket creatRestApi(){
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(Operation.class))
                .paths(PathSelectors.any())
                .build();
    }


    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("springboot整合swagger3的接口文档")
                .description("描述图书馆管理的接口文档")
                .contact(new Contact("非凡boot","https://www.dyit.com","dyit@16.com"))
                .version("1.0")
                .build();

    }
}

  1. dto中添加描述信息
@Schema(description = "DTO对象")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HttpResp {
    @Schema(description = "后台返回代码")
    private int code;
    @Schema(description = "后台返回信息")
    private String msg;
    @Schema(description = "后台返回数据")
    private Object results;
    @Schema(description = "后台返回数据的时间")
    private Date date;
}
  1. controller类中添加swagger信息
@Tag(name = "出版社模块")
@RestController
@RequestMapping("/api/publisher")
public class PublisherController {

    @Autowired
    private IPublisherService ips;

    @Operation(summary = "获取所有出版社信息方法")
    @GetMapping("/findAll")
    public HttpResp findAll(){
        List<Publisher> list = ips.findAll();
        HttpResp dto = new HttpResp(HttpMsg.SUCCESS.getCode(), HttpMsg.SUCCESS.getMsg(), list,new Date());
        return dto;
    }
}
  1. 启动类中添加注解
@SpringBootApplication
@Slf4j
@EnableOpenApi
public class Main {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(Main.class);
       // springApplication.setBannerMode(Banner.Mode.OFF);
        springApplication.run(args);
        log.debug("启动了Main");
    }
}
  1. 启动项目

  2. 页面搜索
    在这里插入图片描述
    此处的ssm是在.yml中配置的项目名

  3. 接口测试
    如图:
    在这里插入图片描述
    在这里插入图片描述

结果:
在这里插入图片描述

注意:后面的 / 不能省略
参考链接:知乎

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Swagger是一个用于设计、构建和文档化RESTful Web服务的开源工具集。下面是一个简单的Swagger使用教程: 1. 安装Swagger:可以通过npm、pip等包管理工具安装Swagger相关的库和工具。例如,对于Node.js项目,可以使用以下命令安装swagger-jsdoc和swagger-ui-express: ```bash npm install swagger-jsdoc swagger-ui-express ``` 2. 编写Swagger注解:在你的API代码中,使用Swagger注解来描述API的信息、请求和响应参数等。以下是一个示例: ```javascript /** * @swagger * /api/users: * get: * summary: 获取所有用户 * description: 获取所有用户列表 * responses: * 200: * description: 成功获取用户列表 * schema: * type: array * items: * $ref: '#/definitions/User' */ ``` 在这个示例中,我们使用Swagger注解来描述一个GET请求,它可以获取所有用户的列表。 3. 生成Swagger文档:使用Swagger注解编写完API代码后,可以使用相应的工具将这些注解转换为Swagger文档。例如,对于Node.js项目,我们可以使用swagger-jsdoc库生成Swagger文档。在项目的入口文件中添加以下代码: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); const options = { definition: { openapi: '3.0.0', info: { title: 'API文档', version: '1.0.0', }, }, apis: ['./path/to/api/controllers/*.js'], // API代码文件的路径 }; const swaggerSpec = swaggerJSDoc(options); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); ``` 这段代码将会在`/api-docs`路径下提供Swagger文档。 4. 查看Swagger文档:运行项目并访问`/api-docs`路径,你将会看到生成的Swagger文档。Swagger提供了一个交互式的UI界面,可以方便地查看API的信息、请求和响应参数等。 这只是一个简单的Swagger使用教程,你可以根据自己的项目需求进一步深入学习和使用Swagger

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vivien_o.O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值