【问题标题】:@fastify/swagger returning 404@fastify/swagger 返回 404
【发布时间】:2022-11-15 17:20:23
【问题描述】:

我正在尝试让@Fastify/swagger 处理一个基本的 Fastify 项目,但是每次我尝试访问 swagger 页面时,它都会以 404 的形式返回。

服务器.js:

const fastify = require('fastify')({logger: true})
const PORT = 3000

fastify.register(require('./routes/items'));

fastify.register(require('@fastify/swagger'), {
    routePrefix: '/documentation',
    exposeRoute: true,
    swagger: {
        info: {
            title: { title: 'test'}
        }
    }
})

    
const start = async() => {
    try {
        await fastify.listen(PORT)
        fastify.swagger()
    } catch (error) {
        fastify.log.error(error)
        process.exit(1)
    }
}

start()

访问 127.0.0.1/documentation

在我的 package.json 中,我有以下依赖项:

  "dependencies": {
    "@fastify/swagger": "^8.1.0",
    "@fastify/view": "^7.1.2",
    "fastify": "^4.9.2",
    "uuid": "^9.0.0"
  }

返回的错误是: :“路由获取:/未找到文档” :{“状态代码”:404}

【问题讨论】:

    标签: node.js swagger fastify fastify-swagger


    【解决方案1】:

    它缺少 @fastify/swagger-ui 包。

    此外,加载顺序很重要。 server.js 中的路由需要在 require swagger 之后出现,如下所示:

    fastify.register(require('@fastify/swagger'), {})
    fastify.register(require('@fastify/swagger-ui'), {
        routePrefix: '/docs',
        uiConfig: {
            docExpansion: 'full',
            deepLinking: false
        },
        uiHooks: {
            onRequest: function (request, reply, next) { next() },
            preHandler: function (request, reply, next) { next() }
        },
        staticCSP: true,
        transformStaticCSP: (header) => header,
        transformSpecification: (swaggerObject, request, reply) => { return swaggerObject },
        transformSpecificationClone: true
    })
    
    fastify.register(require('./routes/item'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2020-10-23
      • 2020-10-18
      相关资源
      最近更新 更多