Муқаддима
MockLab як API-и REST-и сохтаи мизбонишаванда аст. Шумо захираро тасвир мекунед — майдонҳо ва навъҳои онҳоро — ва дар ҷавоб эндпоинти воқеан коркунандаи REST мегиред: CRUD-и пурра, саҳифабандӣ, тартибдиҳӣ, филтр ва ҷустуҷӯ, ки бо додаҳои воқеан монанд сохташуда таъмин шудааст. На сервере, ки нависед, на пойгоҳи додаҳое, ки бо тухм пур кунед, на файлҳои fixture, ки бо схемаи доимо тағйирёбанда ҳамоҳанг нигоҳ доред.
Идеяи асосӣ: сохтан, на нигоҳ доштан
Аксари абзорҳои API-и сохта тавассути гузоштани сатрҳо ба пойгоҳи воқеии додаҳо пеш аз вақт кор
мекунанд, ки маънояш ин аст: миқдори додаҳое, ки шумо дархост карда метавонед, бо шумораи
сатрҳое, ки касе тайёр буд ворид кунад, маҳдуд аст — чанд сад, шояд чанд ҳазор. MockLab ба
тарзи дигар кор мекунад. Ҳар сабт дар лаҳзаи дархосташавӣ аз рӯи seed-и захира ва индекси сабт ба
таври детерминистӣ ҳисоб карда мешавад. Сабти #41-ро дархост кунед — сервер генератори хурду
тезкори псевдотасодуфиро аз (seed, 41) оғоз мекунад ва ҳар дафъа ҳамон майдонҳоро месозад — дар
ҳар сервер, дар ҳар просесс, бидуни ягон муроҷиат ба пойгоҳи додаҳо. 1,000,000 сабт дархост
кунед — ҷавоб бо ҳамон тарз ҷорӣ мешавад; танҳо чизе ки бо count меафзояд, миқдори дархостатон
дар як саҳифа аст, на он чизе ки сервер бояд нигоҳ дорад.
Чизи ягонае, ки воқеан нигоҳ дошта мешавад, тағйиротҳои шумост. Вақте ки шумо POST, PUT,
PATCH ё DELETE мефиристед, ин тағйирот ҳамчун як лояи хурд болои додаҳои сохташудаи асосӣ
нигоҳ дошта мешавад. Дархости хониш тағйиротҳоятонро ба ҷараёни сохташуда мепайвандад, натиҷаро
филтр ва тартиб медиҳад ва як саҳифаро бармегардонад. Захираро аз нав танзим кунед — тағйиротҳо
нест мешаванд ва шумо ба додаҳои холиси сохташуда бармегардед, айнан ҳамон тавре ки пеш аз даст
задан буданд.
Барои ҳар захира чӣ мегиред
- Эндпоинти воқеан фаъоли REST дар
https://mocklab.dev/m/{project-key}/{resource-name} GET(рӯйхат, бо саҳифабандӣ/тартиб/филтр/ҷустуҷӯ) ваGET(як сабти алоҳида)POST,PUT,PATCH,DELETE— роҳи воқеии навиштан, на танҳо барои хониш- CORS ба таври пешфарз фаъол аст, пас шумо метавонед мустақиман аз браузер муроҷиат кунед
- Забони додаҳои сохта, ки аз забони интерфейси шумо мустақил аст —
en,ruва дигарон номҳо, шаҳрҳо ва суроғаҳои воқеан монандро дар он забон месозанд
Ин барои кӣ аст
Барномасозони frontend, ки пеш аз пайдо шудани бэкенди воқеӣ ба он ниёз доранд, донишҷӯёне ки истифодаи API-и REST-ро бидуни сохтани сервери худ меомӯзанд ва ҳар кас, ки UI-ро пешнамоиш мекунад ва намехоҳад миграцияи пойгоҳи додаҳо қадами якум бошад. Агар шумо пештар аз хидмати API-и сохтаи маҳдуди сабтҳо истифода карда бошед ва ба сақфи он бархӯрда бошед, боқимондаи ин ҳуҷҷатҳо шиносо ба назар мерасанд — ҳамон қоидаҳо, бидуни сақф.
Барои дар тӯли тахминан панҷ дақиқа фаъол кардани эндпоинт ба Оғози зуд гузаред, ё барои маълумоти пурраи майдонҳо ба Схема ва навъҳои майдон гузаред.
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, isPending } = useQuery({
queryKey: ["products"],
queryFn: () => fetch("https://mocklab.dev/m/demo7k2m9x/products").then((res) => res.json()),
});
if (isPending) return <p>Loading…</p>;
return (
<ul>
{products.map((product) => (
<li key={product.id}>{product.title}</li>
))}
</ul>
);
}