我在open-api 3.0.0和swagger-ui上遇到问题。
我正在编写一个大字号的定义,我想在一个单独的文件中定义参数和响应。作为第一种方法,我尝试遵循文档(https://swagger.io/docs/specification/using-ref/),并以此方式引用响应:
import nextConnect from 'next-connect';
import middleware from '../../../middlewares/middleware';
import { extractUser } from '../../../lib/api-helpers';
const handler = nextConnect();
handler.use(middleware);
handler.get(async (req, res) => res.json({ user: extractUser(req) }));
handler.patch(async (req, res) => {
if (!req.user) {
req.status(401).end();
return;
}
const { name, bio } = req.body;
await req.db.collection('users').updateOne(
{ _id: req.user._id },
{
$set: {
...(name && { name }),
bio: bio || '',
},
},
);
res.json({ user: { name, bio } });
});
export const config = {
api: {
bodyParser: false,
},
};
export default handler;
但是,即使文件路径是一致的,这也无法正常工作(我可以在webstorm中跟踪链接)。
在我第二次尝试时,我用谷歌搜索是否有人遇到类似的问题,并找到了一些不错的解决方案:https://davidgarcia.dev/how-to-split-open-api-spec-into-multiple-files
我下载了示例定义,并将它们作为卷安装在swagger-ui容器中(是的,我正在使用dockers ...),但看不到任何定义:
有人可以帮助我吗?
谢谢, 劳拉
更新:
我使用以下docker-compose运行我的docker:
'429':
$ref: '../common-definitions.yaml#/components/responses/429'