Башкы бетке

Схема жана талаа түрлөрү

Ресурстун схемасы — талаалардын иреттелген тизмеси. Ар бир талаа nameге, typeке жана, түрүнө жараша, кичине options топтомуна ээ. Талаанын иреттелиши бир конкреттүү себептен маанилүү: template талаасы так ошол эле тизмедеги мурда турган талааны гана шилтей алат — төмөн жактагы template сабын караңыз.

Талаанын аттары кичине тамга менен башталышы жана тамгалардан, сандардан жана астыңкы сызыктан гана турушу керек. Бир ресурс эң көбү 30 талаага ээ боло алат. Ар бир генерацияланган жазуу автоматтык түрдө idге да ээ болот — аны эч качан өзүңүз аныктабайсыз, жана id деп аталган талааны берсеңиз, ал чыныгысынын пайдасына унчукпай эске алынбайт.

Справочник таблицасы

ТүрүОпцияларыМисал жообу
index0, 1, 2, … (жазуунун орду)
uuid"a1b2c3d4-5e6f-7890-abcd-ef1234567890"
firstName"Amelia"
lastName"Nguyen"
fullName"Amelia Nguyen"
email"[email protected]"
phone"+1 555 019 2231"
avataravatar сүрөтүнүн URL'у
imagewidth, height (экөө тең милдеттүү эмес)берилген өлчөмдөгү сүрөттүн URL'у
city"Tashkent"
country"Uzbekistan"
street"482 Birchwood Ave"
word"vivid"
sentencemin, max сөз саны (милдеттүү эмес)"The quiet fox waited by the door."
paragraphmin, max сүйлөм саны (милдеттүү эмес)lorem-стилиндеги кыска абзац
numbermin, max (демейки 01000)742
pricemin, max, symbol (демейки белги жок)"48.19", же symbol: "$" менен "$48.19"
booleantrue болуу probabilityси, 01true
datefrom, to ISO саптары (демейки 2015–2025)"2021-06-14T09:32:00.000Z"
enumvalues — бош эмес сап массивиvaluesден тандалган бир маани
staticvalue — каалаган туруктуу JSON маанисиар дайым так value
templatetemplate{{field}} плейсхолдерлери бар сапмурдагы талаалардан курулган сап

template түрү

template — өз маанисин генерациялоонун ордуна башка талааларды окуй турган жалгыз түр. Анын template опциясы жөнөкөй сап; ал {{fieldName}} дегенди камтыган каалаган жеринде, ошол плейсхолдер fieldName деп аталган талаанын так ушул жазуу үчүн мурда генерациялаган мааниси менен алмаштырылат. Бул схемада мурда аныкталган талаалар үчүн гана иштейт — template али иштеп чыга элек талааны шилтей албайт. Кеңири колдонуу: схеманын мурдагы жеринде firstName талаасы жана lastName талаасы бар болсо, кийинки email талаасынын ордуна аты менен дал келген email'ди сактоо үчүн "{{firstName}}.{{lastName}}@example.com" менен template талаасын колдонсоңуз болот, тиешеси жок email генерациялоонун ордуна.

Детерминизм, кыскача

Ар бир талаа түрү жазуудагы башка ар бир талаа сыяктуу так ошол эле себилген (seeded) псевдококулдук ырааттуулуктан алат, ошондуктан так ошол эле схема, seed жана жазуу индекси ар дайым так ошол эле жазууну, талаа боюнча талаа, чыгарат. Механизмдин толук сүрөттөлүшү үчүн Генерация кантип иштейт барагын караңыз; бул жерде маанилүү нерсе — талаанын опцияларын өзгөртүү ошол талаанын келечектеги жообун өзгөртөт, бирок схемадагы талааларды кайра иреттөө же башка жерге талаа кошуу учурдагы жазуулардын id'лерин аралаштырбайт — id'лер схеманын калган бөлүгүнөн көз каранды эмес генерацияланат.

Ресурстун маалыматын алуу

Мунун баары маалыматты кантип окуганыңызды өзгөртпөйт — ар бир ресурс, талаалары кандай болбосун, так ошол эле жол менен окулат:

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>;
}