Кіріспе
MockLab — жалған REST API қызметі. Сіз ресурсты сипаттайсыз — оның өрістерін және олардың түрлерін — сонда сізге нағыз, жұмыс істейтін REST эндпоинт беріледі: толық CRUD, беттеу, сұрыптау, сүзгілеу және іздеу, шынайы генерацияланған деректермен қамтамасыз етілген. Жазатын сервер де, толтыратын дерекқор да, схема өзгерген сайын қолмен жаңартып отыратын fixture файлдары да қажет емес.
Негізгі идея: сақтамай, генерациялау
Жалған API құралдарының көбі деректерді алдын ала дерекқорға жол-жол енгізу арқылы жұмыс істейді,
яғни сұрай алатын деректер көлемі біреудің қанша жол енгізуге дайын болғанымен шектеледі — бар
болғаны бірнеше жүз, кейде бірнеше мың. MockLab мүлдем басқаша жұмыс істейді. Әр жазба сіз оны
сұраған сәтте ресурстың seed-і мен жазбаның индексінен детерминистикалық түрде есептеледі.
#41 жазбасын сұраңыз — сервер (seed, 41) арқылы бастапталған шағын әрі жылдам
псевдокездейсоқ генератор жегіп, әр уақытта дәл сол өрістерді қайтарады — кез келген серверде,
кез келген процесте, дерекқорға тіпті тимей-ақ. 1 000 000 жазба сұраңыз — жауап дәл сол қалыппен
ағып шығады; тек count мәніне байланысты өсетін нәрсе — сіз бір сұраныста қанша сұрайсыз, ал
сервер қанша сақтайды дегенге ешқашан емес.
Сақталатын жалғыз нәрсе — сіздің өз түзетулеріңіз
Сіз POST, PUT, PATCH немесе DELETE жасағанда, бұл өзгеріс генерацияланған негіздің
үстіне қойылған шағын үстеме өзгеріс ретінде сақталады. Оқу сұранысы генерацияланған ағынға
сіздің үстеме өзгерістеріңізді біріктіріп, нәтижені сүзіп, сұрыптап, содан кейін бетті
қайтарады. Ресурсты қалпына келтірсеңіз, барлық үстеме өзгерістер жоғалады — сіз сол ресурсқа
қол тигізбегендегідей, байт-байтына дейін бірдей таза генерацияланған деректерге ораласыз.
Әр ресурста не аласыз
https://mocklab.dev/m/{project-key}/{resource-name}мекенжайында жұмыс істейтін эндпоинтGET(тізім, беттеу/сұрыптау/сүзгілеу/іздеумен) жәнеGET(жеке жазба)POST,PUT,PATCH,DELETE— тек оқуға арналған имитация емес, нағыз жазу жолы- Әдепкі бойынша қосылған CORS, сондықтан оны браузерден тікелей шақыра аласыз
- Өз UI тіліңізден тәуелсіз жалған дерек тілі —
en,ruжәне басқалары шынайы аттарды, қалаларды, мекенжайларды сол тілде генерациялайды
Бұл кімге арналған
Нағыз бэкенд жасалғанша оны қажет ететін фронтенд әзірлеушілерге, өз серверін көтермей-ақ REST API тұтынуды үйренетін студенттерге және дерекқор миграциясын бірінші қадам етпей-ақ 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>
);
}