Создайте реалистичные MOCK API с Node.js в трех быстрых шагах
В этой эпоху разработки, ориентированного на сервис, вам нужно заставить JSON на сервере и с сервера, чтобы ваш интерфейс оживить. Так что API является необходимостью.
Но, отличные новости: вам не нужно создавать реальные веб-сервисы, чтобы начать. Вместо этого просто установите макет API.
Примечание: Я говорю API для краткости. Связанные термины включают веб-API, веб-сервис, JSON API и REStful API.
Почему макет API?
Вот четыре причины использовать макет API:
- Нет API – Может быть, вы еще не создали API. Мачные API позволяет начать развитие, не дожидаясь команды API для создания необходимых вам услуг. И если вы не решили, как разработать ваши веб-сервисы, насмешливая система, позволяет быстро прототипу различным потенциальным формам ответа, чтобы увидеть, как они работают с вашим приложением.
- Медленный или ненадежный API – Есть ли существующие API в вашей среде DEV или QA, медленно, ненадежны, или дорогими, чтобы позвонить? Если это так, макет API предлагает последовательные, мгновенные ответы для быстрого развития обратной связи. И если ваши существующие веб-сервисы снижаются, Mock API позволяет продолжать работать.
- Устранить взаимодействия между командыми – Отдельная команда создает веб-сервисы вашего приложения? Мачные API означает, что вы можете немедленно начать кодировать и переключиться на реальные веб-сервисы, когда они готовы. Просто договоритесь о предложенном проекте API и издевайтесь на его соответственно.
- Работать в автономном режиме – Наконец, может быть, вам нужно работать на самолете, на дороге, или в других местах, где подключение плохое. Перемагивание позволяет работать в автономном режиме, потому что ваши звонки остаются местными.
Давайте создадим макет API
Самый простой способ, которым я нашел, чтобы получить это сделать, использует Node.js. Вот мой три шаговой процесс для создания реалистичных макет API:
- Объявить схему
- Генерировать случайные данные
- Подавать случайные данные
Давайте пройдем через три шага.
Шаг 1 – объявить схему
Во-первых, давайте объявляем схему для нашего MOCK API, используя Джосон Схема Faker . Это позволит нам объявить, как наш поддельный API должен выглядеть. Мы объявим объекты и свойства, которые он будет выяснить, включая DataTypes. Есть Handy Online Repl Это позволяет легко учиться.
JSON Schema Faker поддерживает генерацию реалистичных случаев случайных данных через три библиотеки с открытым исходным кодом. Faker.js , Chance.js и Randexp.js Отказ Faker и шанс очень похожи. Оба предлагают широкий спектр функций для генерации случайных данных, включая реалистичные имена, адреса, телефоны, электронные письма и многое другое. Randexp создает случайные данные, основанные на регулярных выражениях. Faker JSON Schema позволяет нам использовать Faker, Chance и Randexp в пределах наших определений схемы. Таким образом, вы можете объявить именно то, как следует генерировать каждое свойство в вашем макере API.
Вот пример схемы для генерации реалистичных, рандомизированных пользовательских данных. Я сохраняю этот файл как mockdataschema.js:
var schema = {
"type": "object",
"properties": {
"users": {
"type": "array",
"minItems": 3,
"maxItems": 5,
"items": {
"type": "object",
"properties": {
"id": {
"type": "number",
"unique": true,
"minimum": 1
},
"firstName": {
"type": "string",
"faker": "name.firstName"
},
"lastName": {
"type": "string",
"faker": "name.lastName"
},
"email": {
"type": "string",
"faker": "internet.email"
}
},
"required": ["id", "type", "lastname", "email"]
}
}
},
"required": ["users"]
};
module.exports = schema;
Эта схема использует Faker.js для генерации массива пользователей с реалистичными именами и электронными письмами.
Шаг 2 – генерировать случайные данные
Как только мы определили нашу схему, пришло время генерировать случайные данные. Чтобы автоматизировать задачи построения, я предпочитаю использовать сценарии NPM вместо глотали и ворчания. Вот почему Отказ
Я создаю сценарий NPM в Package.json, который вызывает отдельный скрипт узла:
"generate-mock-data": "node buildScripts/generateMockData"
Скрипт выше вызывает сценарий узла, называемыми GenerateMockdata. Вот что внутри GenerateMockdata.js:
/* This script generates mock data for local development.
This way you don't have to point to an actual API,
but you can enjoy realistic, but randomized data,
and rapid page loads due to local, static data.
*/
var jsf = require('json-schema-faker');
var mockDataSchema = require('./mockDataSchema');
var fs = require('fs');
var json = JSON.stringify(jsf(mockDataSchema));
fs.writeFile("./src/api/db.json", json, function (err) {
if (err) {
return console.log(err);
} else {
console.log("Mock data generated.");
}
});Я звоню JSON-Schema-Faker В строке 11 и передача его схема передачи данных MOCK мы настроили на шаге 1. Это в конечном итоге пишет json до db.json, как указано на линии 13 выше.
Шаг 3 – Подавать случайные данные
Теперь, когда мы написали рандомизированные, реалистичные данные DB.JSON, давайте послужем это! JSON Server Создает реалистичные API, используя статический файл JSON, который мы создали. Итак, давайте укажите JSON Server в DataSet Mock, который мы динамически генерируем на шаге 2.
"start-mockapi": "json-server --watch src/api/db.json --port 3001"
Это запускает JSON-Server и обслуживает данные в DB.JSON на порту 3001. Каждый объект верхнего уровня выставлен на конечной точке HTTP.
Вот удивительная часть: сервер JSON имитирует реальную базу данных, сохранив изменения в файле db.json, который мы создали на шаге 2.
MOD API работает так же, как настоящий API, но без необходимости делать фактический HTTP Call или встать на реальную базу данных! Скрытый.
Это означает, что мы можем сделать развитие, не создавая реальную API первым. Нам просто нужно договориться о призывах и форме данных, то команда пользовательского интерфейса может двигаться вперед без необходимости ждать службы службы для создания связанных услуг.
Таким образом, чтобы все это собралось вместе, вам нужно 3 строки в Package.json:
"generate-mock-data": "node buildScripts/generateMockData", "prestart-mockapi": "npm run generate-mock-data", "start-mockapi": "json-server --watch src/api/db.json --port 3001"
Сценарий Start-Mockapi работает JSON-Server и говорит ему, чтобы посмотреть DB.json, который мы сгенерировали на шаге 2. Перед запуском MOD MOCK API создается данные Mock. Сценарий Prestart-Mockapi вызывается перед Start-Mockapi, потому что он префиксирован «Pre». Это Конвенция о сценарии НПМ. С этой настройкой каждый раз, когда мы запускаем приложение, создается новые реалистичные данные Mock!
Хорошо, мы готовы катиться.
Введите это:
npm run start-mockapi
И загрузить это:
http://localhost: 3001/Пользователи Отказ
Вы должны увидеть список пользователей, возвращаемых json. Успех!
Чтобы увидеть, как это все происходит вместе, Вот работающая демонстрация этой настройки на Github Отказ
Кроме того, мой новый « построение среды развития JavaScript », курс построит это и гораздо больше с нуля. ( Бесплатная пробная версия )
Наконец , Рассмотрим Mocky.io или fakejson.com Для простых альтернатив, которые требуют не установки.
Совет айсберга …
В этой статье обсуждаются только один из более чем 40 решений, которые необходимо создать новую среду разработки JavaScript с нуля:
Я прогуляю все эти решения и построить богатый JavaScript Среда разработки с нуля здесь Отказ
Вы создаете Mock API сегодня? Иметь альтернативную настройку, чтобы поделиться? Я хотел бы услышать о вашем опыте в комментариях.
Дом Кори автор Множество курсов по множеству и главный консультант в reactjsconsulting.com . Он является архитектором программного обеспечения в Vinsolutions, Microsoft MVP и поезда разработчиков программного обеспечения на международном уровне по методике программного обеспечения, такими как интерфейс разработки и чистого кодирования.
Оригинал: “https://www.freecodecamp.org/news/rapid-development-via-mock-apis-e559087be066/”