В этом посте мы обсудим подделку или имитацию REST API для разработки интерфейса. Иногда, когда вы создаете приложение без серверной части, вам нужно смоделировать API, чтобы сэкономить время. Этот json-сервер экономит время, предоставляя простой способ создания Restful API для разработки и тестирования.

Вам необходимо установить json-сервер с помощью команды npm install -g json-server, которая установит json-сервер глобально, поэтому вы сможете запускать сервер из любого каталога, который вам нравится.

Следующее, что нужно сделать, это создать файл ресурсов, который содержит детали API, который мы будем использовать. Мы будем использовать API /users, и его содержимое показано ниже:

{

«пользователи»: [

{

“id”: 1,

«имя пользователя»: «RGershowitz»,

«Девиз»: «Curabitur et magna placerat tellus»

},

{

“id”: 2,

«имя пользователя»: «NMuroski»,

«девиз»: «ante nullam dolor sit placerat»

}

]

}

Создайте базу данных JSON для JSON-сервера, используя Filltext.com в качестве случайного источника данных JSON.

$ npm install -g json-server-init
  • create — создать новую базу данных JSON.
  • коллекция — Добавить новую коллекцию в существующий файл базы данных (todo).

Возможные варианты:

  • — имя, -n — Укажите имя JSON-файла базы данных, который необходимо создать (в случае команды создания) или использовать (команда сбора). Имя по умолчанию, если оно не указано, — «db.json».
  • — справка, -h — показать справку.
  • — версия, -v — показать номер версии.

Например, чтобы создать файл схемы «user.json»:

$ json-server-init create -n user.json

Команда выдает несколько подсказок.

Запрос имени коллекции и количества строк отображает что-то вроде этого:

> Collection name and number of rows, 5 if omitted (ex: posts 10):

Допустимым вводом будет новое имя коллекции с необязательным номером, разделенным пробелом, указывающим, сколько строк должно быть сгенерировано для этой коллекции. Например, users 10 создаст коллекцию «пользователей» с 10 записями в ней, sessions приведет к коллекции «сеансов» с 5 записями по умолчанию и т. д.

После того, как имя коллекции введено, необходимо настроить, какие поля должны быть у коллекции:

>> What fields should "users" have?
Comma-separated fieldname:fieldtype pairs (ex: id:index, username:username)

Запись должна иметь определенный формат: fieldname:fieldtype.

  • fieldname — название поля, только буквенно-цифровые символы.
  • fieldtype — тип данных. Соответствует типам, которые генератор filltext использует для полей, обратитесь ко всему списку возможных значений. Объединение нескольких полей возможно с помощью оператора +.

Например, чтобы сгенерировать коллекцию users с четырьмя полями: идентификатор, имя пользователя, имя и возраст, можно ввести следующую команду:

>> What fields should "users" have?
Comma-separated fieldname:fieldtype pairs (ex: id:index, username:username)
id:index, username:username, name:firstName+lastName, age:numberRange|18,80

Вы можете добавить столько коллекций, сколько необходимо: после запроса полей появится подтверждение, если необходимо создать больше коллекций:

> Add another collection? (y/n) n

Если введено «y», поток повторяет шаг «Подсказка о сборе», в противном случае он извлекает данные JSON и сохраняет их в файл.

СДЕЛАТЬ…

Вот как выглядит типичный рабочий процесс с командой create:

$ json-server-init create
> Collection name and number of rows, 5 if omitted (ex: posts 10): users 2
>> What fields should "users" have?
Comma-separated fieldname:fieldtype pairs (ex: id:index, username:username)
id:index, username:username, motto:lorem|5
> Add another collection? (y/n) n
db.json saved.

Выше будет создан файл db.json с содержимым, подобным этому:

{

«пользователи»: [

{

“id”: 1,

«имя пользователя»: «RGershowitz»,

«Девиз»: «Curabitur et magna placerat tellus»

},

{

“id”: 2,

«имя пользователя»: «NMuroski»,

«девиз»: «ante nullam dolor sit placerat»

}

]

}

$ json-server --watch db.json

Он запустит сервер на порту 3000, а ресурсы будут найдены по адресу http://localhost:3000/users, как показано ниже:

Первоначально опубликовано на medium.com 2 апреля 2017 г.