ელვისებურად სწრაფი, ნულოვანი დამოკიდებულების (zero-dependency) მქონე, ფაილურ სისტემაზე დაფუძნებული mock API სერვერი მონაცემთა გენერაციის ჭკვიანი ძრავით.
Nullmock კითხულობს თქვენს .json ფაილებს, იჭერს დინამიკურ URL მარშრუტებს, როგორიცაა /api/users/[id], ესმის მოთხოვნის პარამეტრები (query parameters) და ჯადოსნურად აგენერირებს დიდი რაოდენობით ყალბ (fake) მონაცემებს ჩაშენებული ლექსიკონების ან მონაცემთა ტიპების ჭკვიანი გამოცნობის ძრავის გამოყენებით.
- ნულოვანი დამოკიდებულება: სუფთა Node.js. არანაირი
express,fakerან გადატვირთულიnode_modulesსაქაღალდეები. - ფაილური სისტემის მარშრუტიზაცია: საქაღალდეები განსაზღვრავს თქვენს API მარშრუტებს (მაგ.,
mocks/api/users/[id]/GET.json). - მონაცემთა ჭკვიანი ძრავი: ავტომატურად იცნობს მონაცემთა ტიპებს JSON-ის გასაღებებიდან (მაგ., ქმნის რეალურ თარიღებს
created_at-სთვის, ელ-ფოსტასuser_email-სთვის). - ჩაშენებული ლექსიკონები (Locales): გამოიყენეთ ტეგები, როგორიცაა
{{firstName:ka}}ან{{city:ka}}, რეალისტური ლოკალიზებული მონაცემების შესაქმნელად. - Repeat ბრძანება: შექმენით 100 მომხმარებელი მილიწამში, უბრალოდ დაამატეთ
"_repeat": 100თქვენს შაბლონში. - ბიბლიოთეკის რეჟიმი: დააიმპორტეთ ძრავი პირდაპირ თქვენს Node.js სკრიპტებში სერვერის გაშვების გარეშე.
გაუშვით შემდეგი ბრძანება თქვენი პროექტის მთავარ საქაღალდეში სტრუქტურის შესაქმნელად:
npx nullmock initეს ბრძანება შექმნის შემდეგ სტრუქტურას:
mocks/: მთავარი საქაღალდე თქვენი API ენდპოინტებისთვის.mocks/locales/: ჩააგდეთ თქვენი საკუთარი.jsonლექსიკონები აქ.mocks/_examples/: შეიცავს 6 ოქროს API შაბლონს დაუყოვნებლივ დასაწყებად.
(მაგალითების გენერირების გამოსატოვებლად, გაუშვით: npx nullmock init --no-examples)
ვარიანტი 1: სწრაფი დაწყება
npx nullmockვარიანტი 2: NPM სკრიპტები (რეკომენდებულია)
დაამატეთ ეს თქვენს package.json-ში:
"scripts": {
"mock": "nullmock"
}შემდეგ გაუშვით: npm run mock
როდესაც უშვებთ init ბრძანებას, Nullmock გაწვდით ინდუსტრიის სტანდარტების 6 შაბლონს. შეგიძლიათ დააკოპიროთ და ჩასვათ ისინი თქვენს API საქაღალდეებში:
1_basic_list.json: ელემენტების მარტივი, ბრტყელი მასივი (გამოსადეგია კატეგორიებისთვის, ქვეყნებისთვის).2_paginated_list.json: სტანდარტული პაგინაციის (offset pagination) სტრუქტურა (current_page, data, total).3_infinite_scroll.json: კურსორზე დაფუძნებული პაგინაციის სტრუქტურა (has_more, next_cursor).4_single_resource.json: დეტალური ობიექტი ერთი ელემენტისთვის (მაგ.,/users/60).5_dashboard_overview.json: ჰიბრიდული სტრუქტურა, რომელიც შეიცავს როგორც შემაჯამებელ მეტრიკებს, ასევე ბოლო აქტივობების მასივებს.6_lazy_auto_mock.json: ნულოვანი კონფიგურაციის შაბლონი. უბრალოდ დაწერეთ გასაღებები (მაგ.,"user_email": ""), დატოვეთ მნიშვნელობები ცარიელი და Nullmock-ის ჭკვიანი ძრავი თავად გამოიცნობს და შეავსებს მათ!
Nullmock-ს მოყვება ჩაშენებული ლოკალიზებული მონაცემები სწრაფი პროტოტიპირებისთვის. გამოიყენეთ {{category:lang}} სინტაქსი თქვენს JSON ფაილებში.
მხარდაჭერილი ჩაშენებული ენები:
en(ინგლისური)tr(თურქული)az(აზერბაიჯანული)ru(რუსული)ka(ქართული)
გამოყენების მაგალითი:
{
"name": "{{firstName:ka}} {{lastName:ka}}",
"location": "{{city:ka}}"
}პერსონალური ლექსიკონები:
გსურთ თქვენი საკუთარი მონაცემების გამოყენება? უბრალოდ შექმენით ka.json ან my_data.json ფაილი mocks/locales/ საქაღალდეში. Nullmock ავტომატურად მიანიჭებს პრიორიტეტს თქვენი პროექტის ლექსიკონებს ჩაშენებულებთან შედარებით.
მარტივად გატესტეთ თქვენი frontend-ის ჩატვირთვის (loading) მდგომარეობები და შეცდომების მართვა. შეგიძლიათ მოახდინოთ ქსელის დაყოვნების და HTTP სტატუსის კოდების სიმულაცია ორი გზით:
1. URL პარამეტრების საშუალებით (დინამიკური ტესტი) არ არის საჭირო თქვენი mock ფაილების შეცვლა! უბრალოდ დაამატეთ პარამეტრები თქვენს fetch URL-ს:
- გატესტეთ ჩატვირთვის მდგომარეობა:
/api/users?_delay=2000(იცდის 2 წამი) - გატესტეთ არაავტორიზებული წვდომა:
/api/users?_status=401 - გააერთიანეთ ისინი:
/api/users?_delay=1000&_status=500
2. JSON კონფიგურაციის საშუალებით (მუდმივი)
დაამატეთ _delay და _status გასაღებები პირდაპირ თქვენს JSON ფაილში. Nullmock გამოიყენებს მათ და წაშლის პასუხის კლიენტისთვის გაგზავნამდე:
{
"_status": 404,
"_delay": 1500,
"error": "მომხმარებელი არ მოიძებნა"
}გჭირდებათ შემთხვევითი რიცხვები კონკრეტულ დიაპაზონში ფასებისთვის, ასაკისთვის ან საფულის ბალანსისთვის? უბრალოდ გამოიყენეთ {{number:min-max}} ტეგი თქვენი სტრიქონების (string) ნებისმიერ ადგილას!
{
"price": "{{number:10-500}}",
"age": "{{number:18-65}}"
}თქვენ არ გჭირდებათ Nullmock-ის მხოლოდ სერვერად გამოყენება. შეგიძლიათ დააიმპორტოთ მისი ძლიერი გენერაციის ძრავი პირდაპირ თქვენს backend სკრიპტებში, ტესტებში ან seeder-ებში!
const { deepScanAndRepeat } = require('nullmock');
const myTemplate = {
"_repeat": 3,
"id": "{{id}}",
"email": "", // ჭკვიანი გამოცნობა
"name": "{{firstName:ka}}"
};
// შექმენით მონაცემები წამიერად! (გადავცემთ { id: 10 } როგორც დინამიკურ პარამეტრს)
const fakeData = deepScanAndRepeat(myTemplate, { id: 10 });
console.log(fakeData);თქვენი წვლილი ყოველთვის დასაფასებელია! გთხოვთ, შექმნათ თქვენი Pull Request-ები develop შტოზე (branch).
MIT © modoldern