شناسه های قابل خواندن انسانی در Prismajs با چند خط کد

tl ؛ دکتر
استفاده کردن
prisma-prefixed-ids
برای تولید خودکار شناسه های پیشوند و قابل خواندن انسانی (مانندusr_abc123
) در مدل های PRISMA شما. با الهام از مقاله Stripe در زمینه طراحی API برای انسان ، این پسوند کشویی وضوح و ساختار را فقط با یک خط تنظیم بهبود می بخشد. هیچ تغییر طرحواره ای لازم نیست.
چرا از شناسه های پیشوند استفاده می کنیم؟
آیا تا به حال یک API را اشکال زدایی کرده و فکر کرده اید “این شناسه حتی چیست؟”
Stripe این را با پیشوند شناسه های شیء حل می کند: cus_
با pi_
با sub_
، و غیره که پیشوند کوچک فوراً زمینه را می دهد. من می خواستم که در پروژه های Prisma – به همین ترتیب من ساختم prisma-prefixed-ids
بشر اکنون تمام مدل های Prisma من دارای شناسه های هوشمند و قابل خواندن هستند usr_xyz123
بشر
نصب و استفاده
نصب آن:
npm install prisma-prefixed-ids
یک خط به تنظیم Prisma خود اضافه کنید:
import { PrismaClient } from "@prisma/client";
import { extendPrismaClient } from "prisma-prefixed-ids";
const prisma = new PrismaClient();
const db = extendPrismaClient(prisma, {
prefixes: {
User: "usr",
Organization: "org",
},
});
سپس به طور معمول از مشتری گسترده خود استفاده کنید:
const user = await db.user.create({
data: { name: "Alice", email: "alice@example.com" }
});
console.log(user.id); // "usr_xxxxxxxx"
نیازی به تنظیم دستی شناسه نیست – آنها به طور خودکار با پیشوند صحیح تولید می شوند.
چرا استفاده کنید nanoid
؟
به جای UUID ها ، این افزونه از نانوئید برای شناسه های کوتاه تر ، URL-SAFE و INTROPY استفاده می کند.
✅ ~ 128 بیتی تصادفی
✅ کوتاهتر از UUID (24 در مقابل 36 کاراکتر)
ito الفبای قابل تنظیم/طول
✅ عملکرد عالی
جایزه: تولید کننده شناسه سفارشی
شناسه های هگز می خواهید؟ رشته های کوتاه تر؟ می توانید ژنراتور خود را وصل کنید:
import { customAlphabet } from 'nanoid';
const generator = (prefix: string) => {
const nanoid = customAlphabet("1234567890abcdef", 10);
return `${prefix}_${nanoid()}`;
};
extendPrismaClient(prisma, {
prefixes: { User: "usr" },
idGenerator: generator,
});
Deep Dive (برای کنجکاو)
- فقط روی مدل هایی با شناسه های رشته کار می کند.
- از API پسوند بومی Prisma (تمیز ، بدون هک) استفاده می کند.
- در صورت لزوم می توانید شناسه را به صورت دستی نادیده بگیرید.
- من از آن در تولید در verex.ai استفاده می کنم – این سنگ جامد است.
امتحانش کن
دادن prisma-prefixed-ids
چرخش در پروژه بعدی شما.
این منبع باز ، استفاده آسان است و داده های شما را برای DEVS ، پشتیبانی و حتی کاربران نهایی قابل خواندن تر می کند.
بازخورد و مشارکت در GitHub استقبال می شود.