You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fastify-swagger生成OAS-3规范时markup富文本不生效如何解决?

解决方案

你无需额外安装其他Fastify插件,你使用的fastify-swagger@4.8.4版本依赖的Swagger UI原生支持Markdown语法解析,无法识别格式的问题属于配置缺失,按以下步骤调整即可:

1. 插件注册时开启Markdown解析开关

注册fastify-swagger时,在uiConfig配置项中显式开启markdownEnabled参数:

fastify.register(require('fastify-swagger'), {
  openapi: {
    openapi: '3.0.3',
    info: {
      title: '你的API文档名称',
      version: '1.0.0'
    }
  },
  exposeRoute: true,
  routePrefix: '/docs', // 你的文档访问路径
  // 核心配置:开启Swagger UI的Markdown解析能力
  uiConfig: {
    markdownEnabled: true
  }
})

2. 确认Markdown内容的书写规范与位置

  • 仅长文本字段支持Markdown解析:包括接口整体描述、接口operation的description字段、Schema的description字段等,summary字段为短文本字段,默认仅支持纯文本
  • Markdown语法前后需保留空行:尤其是你使用的===一级标题、---水平分隔线/二级标题这类Setext风格语法,必须和上下内容之间空出一行才能被正确识别
    示例书写方式:
// 接口Schema定义示例
{
  schema: {
    description: `
接口功能说明
===
这是接口的核心说明内容
---
## 请求注意事项
* 所有参数必须为UTF-8编码
> 测试环境调用时请使用专属测试密钥
`,
    response: {
      200: {
        type: 'object',
        properties: {}
      }
    }
  }
}

3. 自定义嵌入HTML场景的额外配置

如果你是自行嵌入Swagger UI的HTML页面而非使用插件默认生成的页面,需要在SwaggerUIBundle初始化参数中也添加markdownEnabled: true配置:

const swaggerUi = SwaggerUIBundle({
  url: "/docs/json", // 你的OAS规范JSON接口地址
  dom_id: '#swagger-ui',
  markdownEnabled: true, // 手动开启Markdown解析
  // 其他你的自定义配置
})

内容的提问来源于stack exchange,提问作者Pradip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:36:01