我是 Fastify 新手,我正在尝试用它设置 swagger 文档。我正在使用 TypeScript,我发现的所有示例都使用 JavaScript 和require语法。
我尝试尽可能遵循示例,但现在我的文档没有显示/我创建的路线的任何内容。
这是我当前的代码:
import fastifySwagger from '@fastify/swagger';
import fastifySwaggerUi from '@fastify/swagger-ui';
import Fastify from 'fastify';
import { errorBoundary } from './plugins/errorBoundary';
const fastify = Fastify({
logger: true
});
const port = process.env.PORT || 3003;
// Set custom error handler.
fastify.setErrorHandler(errorBoundary);
// Register @fastify/swagger plugin.
fastify.register(fastifySwagger, {
openapi: {
info: {
title: 'Forest Fire API',
description: 'Forest Fire API Documentation',
version: '1.0.0'
},
servers: [
{
url: 'http://localhost'
}
], …Run Code Online (Sandbox Code Playgroud) 我长期以来一直是 ExpressJs 的粉丝,但在 Youtube 视频中我偶然发现了 Fastify,并想尝试一下
我正在努力让fastify-swagger插件工作,因为我认为它应该工作 - 动态设置从每条路线中获取模式,但我肯定错过了一些东西
这是我的测试存储库,运行后,我的路线都没有出现
我的插件设置是默认设置
但我只看到
我在自述文件中读到,由于 OpenAPI 规范,某些属性description是强制性的,否则不会拾取路线,但我已经添加了一条路线,但仍然没有拾取,我还添加了tags疑问如果这也是强制性的,但没有什么......
有谁知道我错过了什么?一定是一件简单的事情,但这几天让我感到困惑
我试图让 @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()
Run Code Online (Sandbox Code Playgroud)
访问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"
}
Run Code Online (Sandbox Code Playgroud)
返回的错误是::“Route GET:/未找到文档”:{“statusCode”:404}