我使用fastify 3.28.0(加上fastify-swagger插件)和typescript 4.6.2,我想在每个路由中添加标签,描述和摘要。
从文档:fastify Swagger 这将是可能的添加描述,标签和总结,每一个路线。
但我不能这样做,因为模式的定义没有提供它们:
export interface FastifySchema {
body?: unknown;
querystring?: unknown;
params?: unknown;
headers?: unknown;
response?: unknown;
}
所以在这种情况下,我不知道如何在fastify路由中定义它们:
const userRoutes: FastifyPluginCallback = (fastify, _opts, done) => {
const findRoute: RouteOptions = {
method: 'GET',
url: '/:username',
schema: {
params: schemaParams,
response: {
200: schema
}
},
handler: (request: FastifyRequest<{
Params: UserRequestFindParams,
}>, reply) => {
const user = find(request.params.username)
reply.send(user)
}
}
fastify.route(findRoute)
done()
}
- 更新
我刚刚发现fastify-swagger的新版本已经发布(fastify-swagger已经被**@fastify/swagger**取代)。在新版本中,上面提到的所有属性都可用。
1条答案
按热度按时间rggaifut1#
1.运行命令
fastify generate project;cd project; npm i
1.创建文件
plugins/swagger.js
1.创建新文件routes/test.js
1.运行命令
npm run dev
它看起来像: