تطوير الويب 1 دقيقة للقراءة 1,722 مشاهدات

tRPC: أمان الأنواع من البداية للنهاية بدون GraphQL

يوفر tRPC أمان الأنواع للمكدس الكامل بدون مخططات أو توليد كود.

tRPC TypeScript code

يتيح tRPC أمان الأنواع من الطرف إلى الطرف بين الواجهة الأمامية والخلفية دون مخططات أو توليد شيفرة أو تعقيد REST/GraphQL.

كيف يعمل tRPC

عرّف الإجراءات (procedures) على الخادم، واستدعِها مع استنتاج كامل للأنواع على العميل:

الخادم

import { initTRPC } from "@trpc/server";
import { z } from "zod";

const t = initTRPC.create();

export const appRouter = t.router({
  user: t.router({
    getById: t.procedure
      .input(z.string())
      .query(({ input }) => {
        return db.users.findById(input);
      }),
    create: t.procedure
      .input(z.object({ name: z.string(), email: z.string().email() }))
      .mutation(({ input }) => {
        return db.users.create(input);
      }),
  }),
});

export type AppRouter = typeof appRouter;

العميل

import { createTRPCClient } from "@trpc/client";
import type { AppRouter } from "./server";

const trpc = createTRPCClient<AppRouter>({ url: "/api/trpc" });

// Full type inference!
const user = await trpc.user.getById.query("123");
const newUser = await trpc.user.create.mutate({ name: "John", email: "john@example.com" });

المزايا

  • لا حاجة لملفات مخططات أو توليد شيفرة
  • أخطاء الأنواع تظهر فوراً عبر المكدّس بالكامل
  • يعمل مع React Query بشكل مدمج
  • اشتراكات (Subscriptions) للبيانات الفورية
مشاركة هذه المقالة:
ES
كتبه

Edrees Salih

مهندس برمجيات متكامل يتمتع بخبرة 9 سنوات. شغوف ببناء حلول قابلة للتطوير ومشاركة المعرفة مع مجتمع المطورين.

عرض الملف الشخصي

التعليقات (0)

اترك تعليقًا

لن يتم نشر بريدك الإلكتروني.

لا توجد تعليقات بعد. كن أول من يشارك أفكاره!

مقالات ذات صلة

مقالات ذات صلة

هل تحتاج مساعدة في مشروعك؟

احجز استشارة مجانية لمدة 30 دقيقة لمناقشة تحدياتك التقنية واستكشاف الحلول معًا.