我试图让@ Fastify /swagger在一个基本的Fastify项目上工作,但是每次我尝试进入swagger页面时,它都会以404的形式返回。
server.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/文件
在我的package.json中,我有以下依赖项:
"dependencies": {
"@fastify/swagger": "^8.1.0",
"@fastify/view": "^7.1.2",
"fastify": "^4.9.2",
"uuid": "^9.0.0"
}返回的错误是::“路由获取:/文档未找到”:{"statusCode":404}
发布于 2022-11-15 08:44:49
它丢失了@fastify/swagger包。
此外,加载顺序很重要。server.js中的路由需要在需要大摇大摆之后才能到达,如下所示:
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'))

https://stackoverflow.com/questions/74437941
复制相似问题