Bosh sahifaga

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

TuriSozlamalarNamunaviy natija
index0, 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"
avataravatar rasm manzili
imagewidth, height (ikkalasi ham ixtiyoriy)berilgan o‘lchamdagi rasm manzili
city"Tashkent"
country"Uzbekistan"
street"482 Birchwood Ave"
word"vivid"
sentencemin, max so‘z soni (ixtiyoriy)"The quiet fox waited by the door."
paragraphmin, max gap soni (ixtiyoriy)qisqa lorem-uslubidagi abzats
numbermin, max (standart 01000)742
pricemin, max, symbol (standart — belgisiz)"48.19", yoki symbol: "$" bilan "$48.19"
booleantrue bo‘lish probabilitysi, 01true
datefrom, to ISO satrlari (standart 2015–2025)"2021-06-14T09:32:00.000Z"
enumvalues — bo‘sh bo‘lmagan satrlar massivivaluesdan tanlangan bitta qiymat
staticvalue — istalgan doimiy JSON qiymatidoim aynan value
templatetemplate{{field}} joy egalari bilan satroldingi 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>;
}