Skip to content

foldspace-stack/foldspace-strapi-nextjs-api-generater

Repository files navigation

foldspace-strapi-nextjs-api-generater

一个根据 OpenAPI Specification (OAS) 定义自动生成 Next.js API 文件的工具。

Latest PyPI version

功能特性

  • 支持从 URL 或本地文件路径加载 OAS 定义(JSON 或 YAML 格式)
  • 自动解析 OAS 组件中的 schemas 为 TypeScript 接口
  • 为每个域名接口生成独立的文件夹结构
  • 生成符合 Next.js API 路由规范的文件
  • 支持动态参数路由(如 [documentId])
  • 自动生成 API 类型文档(TYPE.md)

安装方法

使用 pip 安装:

pip install foldspace-strapi-nextjs-api-generater

或者从源码安装:

git clone https://github.com/yishenggudou/foldspace-strapi-nextjs-api-generater.git
cd foldspace-strapi-nextjs-api-generater
pip install -e .

依赖要求

  • Python 3.7+
  • pyyaml
  • requests
  • jinja2

使用示例

基本用法

从本地文件生成 API:

strapi-nextjs-api-generate ./openapi.yaml

从 URL 生成 API:

strapi-nextjs-api-generate https://example.com/openapi.json

指定输出目录:

strapi-nextjs-api-generate ./openapi.yaml -o ./output

命令行参数

strapi-nextjs-api-generate --help

usage: strapi-nextjs-api-generate [-h] [-o OUTPUT] [-v] source

根据 OAS 定义生成 Next.js API 文件

positional arguments:
  source                OAS 文件的 URL 或本地路径

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        输出目录,默认为当前目录
  -v, --version         show program's version number and exit

生成的文件结构

生成的文件结构示例:

├── channel
│   ├── client.ts          # API 客户端实例
│   ├── [documentId]
│   │   └── route.ts       # 详情路由(GET/PUT)
│   ├── models.ts          # TypeScript 接口定义
│   ├── route.ts           # 列表路由(GET/POST)
│   └── TYPE.md            # API 类型文档
└── user
    ├── client.ts
    ├── [documentId]
    │   └── route.ts
    ├── models.ts
    ├── route.ts
    └── TYPE.md

生成的文件说明

  • client.ts: 封装了与 Strapi SDK 的交互,提供了集合操作方法
  • [documentId]/route.ts: 处理单个资源的 GET 和 PUT 请求
  • models.ts: 包含从 OAS schemas 生成的 TypeScript 接口定义
  • route.ts: 处理资源列表的 GET 和 POST 请求
  • TYPE.md: 自动生成的 API 类型文档,包含字段说明

许可证

MIT

作者

foldspace-strapi-nextjs-api-generater 由 yishenggudou 编写。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published