javascript - Next.js 与 Swagger

标签 javascript swagger next.js

有没有办法为 NEXT.js API 路由提供一个 Swagger 的文档?
我正在使用 Next.js 进行前端和后端开发,并且我希望为我使用 Next.js 开发的 API 提供一个 Swagger 的文档。

最佳答案

您可以使用以下项目来引导 Next.js 和 Swagger 之间的集成

  • https://github.com/jellydn/next-swagger-doc
  • https://www.npmjs.com/package/next-swagger-doc
  • Demo
  • yarn add next-swagger-doc swagger-ui-react
    
    import { GetStaticProps, InferGetStaticPropsType } from 'next';
    
    import { createSwaggerSpec } from 'next-swagger-doc';
    import SwaggerUI from 'swagger-ui-react';
    import 'swagger-ui-react/swagger-ui.css';
    
    const ApiDoc = ({ spec }: InferGetStaticPropsType<typeof getStaticProps>) => {
      return <SwaggerUI spec={spec} />;
    };
    
    export const getStaticProps: GetStaticProps = async ctx => {
      const spec: Record<string, any> = createSwaggerSpec({
        title: 'NextJS Swagger',
        version: '0.1.0',
      });
      return { props: { spec } };
    };
    
    export default ApiDoc;
    
    Next.js API 路由端点的实际定义如下所示:
    /**
     * @swagger
     * /api/hello:
     *   get:
     *     description: Returns the hello world
     *     responses:
     *       200:
     *         description: hello world
     */
    const handler = (_req: NextApiRequest, res: NextApiResponse) => {
      res.status(200).json({
        result: 'hello world',
      });
    };
    

    关于javascript - Next.js 与 Swagger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66955625/

    相关文章:

    用于绘制区域的 Javascript 图形库

    typescript - 如何从 Swagger 模式生成基本的 TypeScript 接口(interface)?

    java - 在 Spring Boot 中使用 swagger.yaml 的 Swagger UI

    java - @Valid @RequestBody 无法验证输入错误的传入 Json

    reactjs - 在 NextAuth 中,是什么触发了到 "/api/auth/signout"的路由?

    javascript - Next.js 路由处理程序出现 404 错误

    javascript - React 服务器组件在 SEO 上的性能

    javascript - FabricJS:将带有 ClipPath 的 Freehand 添加到对象组

    javascript - 根据 AngularJS 中的区域设置更改输入值

    javascript - THREE.js 未捕获的 TypeError 取决于我导入的 Three.js 版本