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