OpenAPI 3.0.0对externalFile中的定义的引用

时间:2020-05-27 15:19:05

标签: docker swagger swagger-ui openapi

我在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'

0 个答案:

没有答案