Prisma tRPC Generator快速入门:10分钟搭建完整CRUD API

Prisma tRPC Generator快速入门:10分钟搭建完整CRUD API

【免费下载链接】prisma-trpc-generator Prisma 2+ generator to emit fully implemented tRPC routers 【免费下载链接】prisma-trpc-generator 项目地址: https://gitcode.com/gh_mirrors/pr/prisma-trpc-generator

Prisma tRPC Generator是一款强大的Prisma生成器,能够自动生成完整实现的tRPC路由,帮助开发者快速构建类型安全的CRUD API。通过自动化代码生成,它大幅减少了重复工作,让你专注于业务逻辑而非基础架构。

为什么选择Prisma tRPC Generator?

在现代Web开发中,构建API往往需要编写大量重复的CRUD代码。Prisma tRPC Generator通过以下方式解决这一痛点:

  • 类型安全:利用TypeScript的类型系统,确保API输入输出类型一致
  • 自动生成:从Prisma模型自动生成完整的tRPC路由和Zod验证模式
  • 减少样板代码:消除手动编写CRUD操作的需要
  • 无缝集成:与Prisma和tRPC生态系统完美融合

该工具特别适合需要快速开发API的项目,无论是小型应用还是大型企业系统。

安装与基本配置

环境要求

  • Node.js 20.19.0或更高版本
  • Prisma 7.0.0或更高版本
  • tRPC服务器 11.7.1或更高版本

安装步骤

首先,通过npm安装Prisma tRPC Generator:

npm install prisma-trpc-generator --save-dev

或者使用pnpm:

pnpm add prisma-trpc-generator -D

配置Prisma

在你的Prisma模式文件(prisma/schema.prisma)中添加生成器配置:

generator trpc {
  provider          = "node ./lib/generator.js"
  output            = "./generated"
  config            = "./trpc.config.json"
}

创建你的第一个Prisma模型

让我们创建一个简单的用户模型作为示例。在Prisma模式文件中添加:

model User {
  id    Int     @id @default(autoincrement())
  /// @zod.email()
  email String  @unique
  /// @zod.min(1).max(100)
  name  String?
  posts Post[]
}

model Post {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  title     String
  content   String?
  author    User?    @relation(fields: [authorId], references: [id])
  authorId  Int?
}

注意模型中的特殊注释/// @zod.email()/// @zod.min(1).max(100),这些会被用于生成Zod验证规则。

生成tRPC路由

配置完成后,运行Prisma生成命令:

npx prisma generate

该命令会读取你的Prisma模型,并在指定的输出目录(prisma/generated)中生成完整的tRPC路由。

生成的路由包含所有常见的CRUD操作,如创建、读取、更新和删除。下面是生成的路由示例:

Prisma tRPC Generator生成的路由示例

使用生成的路由

生成路由后,你可以在tRPC应用中直接使用它们。以下是一个基本示例:

import { router } from './trpc';
import { userRouter } from './prisma/generated/user/router';
import { postRouter } from './prisma/generated/post/router';

export const appRouter = router({
  user: userRouter,
  post: postRouter,
});

export type AppRouter = typeof appRouter;

现在你已经拥有了完整的CRUD API,包括:

  • 用户的创建、查询、更新和删除
  • 帖子的创建、查询、更新和删除
  • 自动生成的Zod验证
  • 类型安全的输入输出

自定义生成配置

Prisma tRPC Generator提供了丰富的配置选项,你可以通过prisma/trpc.config.json文件进行自定义:

{
  "routes": {
    "create": true,
    "read": true,
    "update": true,
    "delete": true
  },
  "shield": {
    "enabled": true
  }
}

通过配置文件,你可以启用或禁用特定操作,配置权限控制,以及自定义生成行为。

实际应用示例

基本查询操作

// 获取所有用户
const users = await trpc.user.findMany.query();

// 获取单个用户
const user = await trpc.user.findById.query({ id: 1 });

创建新记录

const newUser = await trpc.user.create.mutate({
  data: {
    email: "user@example.com",
    name: "John Doe"
  }
});

更新记录

const updatedUser = await trpc.user.update.mutate({
  where: { id: 1 },
  data: { name: "Jane Doe" }
});

删除记录

const deletedUser = await trpc.user.delete.mutate({ id: 1 });

高级功能

权限控制

Prisma tRPC Generator与trpc-shield无缝集成,允许你定义细粒度的权限规则。配置文件位于prisma/shield.ts

中间件支持

你可以通过prisma/middleware.ts添加自定义中间件,实现日志记录、请求验证等功能。

多租户支持

对于需要多租户功能的应用,可以参考示例examples/use-services-tenancy.ts

测试你的API

项目提供了完整的测试套件,你可以通过运行以下命令来验证生成的API:

pnpm test

测试文件位于tests/目录,涵盖了各种功能测试,包括认证、中间件、路由生成等。

总结

Prisma tRPC Generator是一个强大的工具,它通过自动生成类型安全的tRPC路由,显著加速了API开发过程。通过本文介绍的步骤,你可以在10分钟内搭建起完整的CRUD API,而无需编写大量样板代码。

无论你是构建新应用还是重构现有项目,Prisma tRPC Generator都能帮助你提高开发效率,同时确保代码质量和类型安全。现在就尝试使用它,体验快速开发API的乐趣吧!

【免费下载链接】prisma-trpc-generator Prisma 2+ generator to emit fully implemented tRPC routers 【免费下载链接】prisma-trpc-generator 项目地址: https://gitcode.com/gh_mirrors/pr/prisma-trpc-generator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值