🔥NestJS 接口文档神器!nestjs-knife4j-plus 让 Swagger 颜值与功能双飞跃

979 阅读2分钟

作为 NestJS 开发者,你是否觉得原生 Swagger 文档不够直观?接口调试不够顺畅?市面上虽有同类集成包,但大多基于陈旧 UI 开发,且核心依赖的 Knife4j 原作者已基本停止维护,导致诸多遗留 bug 难以解决,用起来处处受限。

今天给大家推荐一款「青出于蓝」的宝藏插件 ——nestjs-knife4j-plus!不仅延续了 Knife4j 的高颜值优势,更针对性修复了大量历史 bug,兼容性和实用性全面升级,支持 Express 和 Fastify 双适配器,让你的 API 文档既好看又好用,开发效率直接拉满!

✨ 核心亮点

✅ 双框架适配:完美支持 Express 和 Fastify 两种 HTTP 适配器,不用操心框架兼容性问题

✅ 高颜值 UI:基于 Knife4j 打造的可视化界面,比原生 Swagger 更清晰、更易用,接口分类、参数展示一目了然

✅ 无缝集成:与 @nestjs/swagger 深度兼容,原有 Swagger 配置无需大幅修改,快速接入

✅ 调试友好:支持在线接口调试、参数自动填充、响应格式化,开发测试一条龙

📦 极速安装

一行命令搞定基础安装,Fastify 用户额外补充依赖即可:

// 基础安装(Express/Fastify通用)
npm install nestjs-knife4j-plus @nestjs/swagger 
// Fastify适配器需额外安装 
npm install @fastify/static

⚠️ 注意:@fastify/static 版本需与 Fastify 版本匹配,兼容性矩阵参考:

@fastify/static versionFastify version
^8.x^5.x
^7.x^4.x
^5.x^3.x
^2.x^2.x
^1.x^1.x

🚀 快速上手

只需在原有 Swagger 配置基础上,添加 3 行代码即可启用:

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'
import { knife4jSetup } from 'nestjs-knife4j-plus'

async function bootstrap() {
  // 原有Swagger配置不变
  const options = new DocumentBuilder()
    .setTitle('Cats example')
    .setDescription('The cats API description')
    .setVersion('1.0')
    .addTag('cats')
    .build()
  const document = SwaggerModule.createDocument(app, options)
  SwaggerModule.setup('api', app, document)

  // 启用knife4j增强(关键代码)
  knife4jSetup(app, [
    {
      name: '2.0 version', // 文档版本名称
      url: `/api-json`,    // Swagger openapi JSON地址
    },
  ])

  await app.listen(3000)
}

启动项目后,访问 http://127.0.0.1:3000/doc.html,就能看到美化后的接口文档啦!

image.png

🌟 开源信息

目前插件已稳定迭代,issues 响应及时,无论是个人开发还是企业项目都能放心使用~ 赶紧安装试试,让你的 NestJS 接口文档告别单调,变得既好看又好用!

如果觉得有用,欢迎点赞收藏,转发给身边的 NestJS 开发者~ 有任何使用问题或建议,也可以去 GitHub 提交 issue 交流哦!