Sxema va maydon turlari
Resursning sxemasi — maydonlarning tartiblangan ro‘yxati. Har bir maydon namega, typega va,
turiga qarab, kichik options to‘plamiga ega. Maydonlar tartibi bitta aniq sababga ko‘ra
muhim: template maydoni faqat xuddi shu ro‘yxatda undan oldin joylashgan maydonga havola
qila oladi — quyidagi template qatoriga qarang.
Maydon nomlari kichik harf bilan boshlanishi va faqat harflar, raqamlar va pastki chiziqdan
iborat bo‘lishi kerak. Resursda ko‘pi bilan 30 ta maydon bo‘lishi mumkin. Har bir generatsiya
qilingan yozuv avtomatik ravishda id ham olib yuradi — siz uni hech qachon o‘zingiz
belgilamaysiz, va id deb nomlangan maydon jimgina e’tiborsiz qoldirilib, haqiqiy id foydasiga
ishlatiladi.
Ma’lumotnoma jadvali
| Turi | Sozlamalar | Namunaviy natija |
|---|---|---|
index | — | 0, 1, 2, … (yozuvning o‘rni) |
uuid | — | "a1b2c3d4-5e6f-7890-abcd-ef1234567890" |
firstName | — | "Amelia" |
lastName | — | "Nguyen" |
fullName | — | "Amelia Nguyen" |
email | — | "[email protected]" |
phone | — | "+1 555 019 2231" |
avatar | — | avatar rasm manzili |
image | width, height (ikkalasi ham ixtiyoriy) | berilgan o‘lchamdagi rasm manzili |
city | — | "Tashkent" |
country | — | "Uzbekistan" |
street | — | "482 Birchwood Ave" |
word | — | "vivid" |
sentence | min, max so‘z soni (ixtiyoriy) | "The quiet fox waited by the door." |
paragraph | min, max gap soni (ixtiyoriy) | qisqa lorem-uslubidagi abzats |
number | min, max (standart 0–1000) | 742 |
price | min, max, symbol (standart — belgisiz) | "48.19", yoki symbol: "$" bilan "$48.19" |
boolean | true bo‘lish probabilitysi, 0–1 | true |
date | from, to ISO satrlari (standart 2015–2025) | "2021-06-14T09:32:00.000Z" |
enum | values — bo‘sh bo‘lmagan satrlar massivi | valuesdan tanlangan bitta qiymat |
static | value — istalgan doimiy JSON qiymati | doim aynan value |
template | template — {{field}} joy egalari bilan satr | oldingi maydonlardan tuzilgan satr |
template turi
template — o‘z qiymatini generatsiya qilish o‘rniga boshqa maydonlarni o‘qiydigan yagona tur.
Uning template sozlamasi oddiy satr; unda {{fieldName}} uchragan har bir joyda, o‘sha joy
egasi fieldName deb nomlangan maydon xuddi shu yozuv uchun allaqachon generatsiya qilgan
qiymat bilan almashtiriladi. Bu faqat sxemada oldinroq aniqlangan maydonlar uchun ishlaydi —
template hali ishlamagan maydonga havola qila olmaydi. Odatiy foydalanish: sxemada oldinroq
firstName va lastName maydonlari bo‘lsa, keyingi email maydoni tasodifiy email
generatsiya qilish o‘rniga "{{firstName}}.{{lastName}}@example.com" shablonli template
maydoni bo‘lishi mumkin — shunda email ism bilan mos keladi.
Determinizm, qisqacha
Har bir maydon turi bir xil yozuvdagi boshqa har qanday maydon kabi xuddi shu urug‘lantirilgan psevdo-tasodifiy ketma-ketlikdan oladi, shuning uchun aynan bir xil sxema, seed va yozuv indeksi har doim aynan bir xil yozuvni, maydon-maydon bo‘yicha hosil qiladi. Generatsiya qanday ishlaydi sahifasi mexanizmni to‘liq yoritadi; bu yerda muhimi shuki, maydonning sozlamalarini o‘zgartirish o‘sha maydonning kelajakdagi natijasini o‘zgartiradi, lekin sxemaning boshqa joyida maydonlarni qayta tartiblash yoki qo‘shish mavjud yozuvlarga allaqachon berilgan id’larni aralashtirib yubormaydi — id’lar sxemaning qolgan qismidan mustaqil generatsiya qilinadi.
Resurs ma’lumotlarini olish
Bularning hech biri ma’lumotni qanday o‘qishingizni o‘zgartirmaydi — har qanday resurs, uning maydonlaridan qat’i nazar, bir xil tarzda o‘qiladi:
const response = await fetch("https://mocklab.dev/m/demo7k2m9x/products");
const products = await response.json();import { useQuery } from "@tanstack/react-query";
function ProductList() {
const { data: products } = useQuery({
queryKey: ["products"],
queryFn: () => fetch("https://mocklab.dev/m/demo7k2m9x/products").then((res) => res.json()),
});
return <pre>{JSON.stringify(products, null, 2)}</pre>;
}