V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Ghosteye
V2EX  ›  分享创造

快速创建 API 和类型定义(come in mo fish😊)

  •  
  •   Ghosteye ·
    xiaoyao-Ye · 2023-07-07 16:12:06 +08:00 · 568 次点击
    这是一个创建于 512 天前的主题,其中的信息可能已经有所发展或是发生改变。

    介绍

    在现代的软件开发中,创建和管理 API 是非常重要的一部分。

    为了简化这个过程,并提高开发效率,我造了一个轮子,它提供了一种简单的方式来快速创建 API 并自动生成类型定义,让开发人员可以更轻松地进行 API 的设计和开发。

    还能提供更好的代码可读性和可维护性。

    如果你正在寻找一种简单而又高效的方式来创建 API ,我推荐你尝试一下。

    项目链接:

    initapi(GitHub 地址)

    initapi(npm 地址)

    创建结果展示:

    API 文件示例

    Generate API Content Example

    类型 文件示例

    Generate Type Content Example

    主要特性

    • 快速创建 API:initapi 提供了一种简单的命令行界面,可以快速创建 API 文件并生成基本的请求函数。
    • 自动生成类型定义:根据 API 结构和数据模型,自动生成 TypeScript 的 interface 和 type ,避免手动定义类型的繁琐工作。
    • 类型安全:根据后端类型转换成前端的 TypeScript 类型,提高代码可靠性和类型安全性。
    • 统一规范:功能放置位置一致,请求函数的创建方法一致,保持代码统一。
    • 降低维护成本:后端接口变动后,只需重新生成函数代码,引用部分无需修改。

    使用方式

    这里只介绍最简单的使用方式,可前往 initapi 查看更多可自定义内容

    安装:

    npm i initapi -D
    # or
    pnpm i initapi -D
    

    使用:

    创建并配置 api.config.ts or api.config.js:

    import { defineConfig } from "initapi";
    export default defineConfig({
      service: {
        // 后端有几个服务就配置几个
        // 服务名称-创建 API 时文件夹的名称会使用此命名
        pets: {
          // API 接口文档的 json 文件地址(这里借用 swagger 官方公开的作为示例) 可以设置远程也可以设置本地相对路径
          url: "https://petstore.swagger.io/v2/swagger.json",
        },
      },
      // API 文件输出目录
      outputDir: "./src/api",
    });
    

    package.json:

      "scripts": {
        "api": "initapi create",
        // ...
      },
    
    npm run api
    

    创建成功示例

    Generate success Example

    最后

    感谢您的支持和参与!如果有任何问题或需要进一步的帮助,请随时提问。我们非常欢迎您使用、关注、点赞、提交问题和发起合并请求!谢谢!😊

    项目链接:

    initapi(GitHub 地址)

    initapi(npm 地址)

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:13 · PVG 19:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.