Knife4j和Swagger
本文最后更新于319 天前,其中的信息可能已经过时,如有错误请发送邮件到15578243672@163.com
  • Knife4j使用流程
  • Knife4j常用注解

在后端开发过程中当我们实现接口功能的时候,如果要测试的话,不仅要拼接URL地址,频繁的测试过程会不断拼接URL地址,为了解决这个问题我们使用APIfox来测试不行吗?这个当然是可以的,但要注意现在还是在测试阶段,代码逻辑还需要修改,如果频繁的修改就要不断手动同步我们的APIfox,所以使用Knife4来最为稳妥,一方面是Knife4j会自动扫描帮助我们完成开发文档的搭建,其次是同步性方面,Knife4j会自动在开发文档中更新代码逻辑,很方便我们进行临时快速的开发测试。

而Swagger也有同样的功能,可以这么说Knife4j其实是Swagger的Plus版本,而我们更加倾向于使用Knife4j的原因是其UI界面更加符合人类审美这一块

Knife4j使用流程

有两种方式,第一种是写好配置类,利用注释启动注释,之后在项目开启的时候就会自动扫描指定包内的@RequestMapping,@RequestController,@GetMapping@PostMapping这些映射注释和方法参数,根据映射注释来自动拼接好开发文档需要的请求URL地址和请求参数。如果想要往开发文档里面添加更多的注释方便阅读的话,下一标题的常用注释会提到,以下是简易的Knife4j搭建。

//创建好配置类
@Configuration
@EnableSwagger2  // 启用Swagger2(Knife4j基于此)
public class SwaggerConfig {

    // 配置Docket核心Bean
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.controller")) 
                .paths(PathSelectors.any())
                .build();
    }

    // 配置API基本信息
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API接口文档")  // 文档标题
                .description("系统开发接口文档")  // 详细描述
                .version("1.0.0")  // 文档版本
                .contact(new Contact("张三", "https://zhangsan.com", "zhangsan@example.com")) 
                .build();
    }
} 

之后的内容就很简单了,详情见下一标题。还有第二种方法,那就是使用配置文件来代替配置类,大体内容都差不多

knife4j:
  enable: true //开启Knife4j
  setting:
    language: zh-CN//开启中文
  openapi:
    title: 开发项目名称
    description: 描述开发项目具体内容
    version: 1.0.0
    concat:
    license: Apache License 2.0
    license-url: https://github.com/itwanger/paicoding/blob/main/License
    email: bangzewu@126.com
    group://
      admin:
        group-name: 后台接口分组
        api-rule: package//扫描哪些内容
        api-rule-resources://具体是哪个
          - com.github.paicoding.forum.web.admin
      front:
        group-name: 前台接口分组
        api-rule: package
        api-rule-resources:
          - com.github.paicoding.forum.web.front

我更倾向于推荐第二种,这样不需要显示的写出Dokcer组件,并且配置文件的形式可以说很便于修改了

Knife4j的常用注释

上文提到Knife4j能够自动生成开发文档是因为扫描了对应的注释,经过解析得到对应内容,其实还有更多的注释便于我们完成开发文档的详备,分别是

  • @ApiOperation(name=”该接口的名称”,notes=“该接口的详细描述”,tags) 加在类上
  • @Operation(summary=”该接口功能的名称”,description=“该接口功能的详细信息”) 加在类中的方法上
  • @Parameter(required: 是否必填,description: 参数描述) 添加在参数列表中
  • @Schema(description:描述属性是什么)应用于DTO/VO类的属性上,描述数据模型的字段。 这是让文档清晰展示数据结构的关键

Knife4j和Swagger success
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇