Skip to content

m3-moretv/smogger

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Что это?

Инструмент для автоматического создания мок-сервера: имитации реального API, описанного по спецификации Open API v3.

Зависимости

  • node.js >= 9
  • Open API спецификация (yaml/json)

Установка и запуск

  • npm i @m3-moretv/smogger
  • npx @m3-moretv/smogger -s ./spec.yaml
  • npx @m3-moretv/smogger --help покажет список опций

На порту :3000 запустится http сервер, который будет полностью эмулировать описанное в спеке API. Все endpoints будут возвращать модели, описанные в спецификации с рандомными значениями, сгенеренными с помощью Faker.js

Например эта схема:

type: object
required:
    - id
    - name
properties:
  id:
    type: integer
    format: int64
  name:
    type: string
    format: name.firstName
  tag:
    type: string
    format: random.word

Вернет такие данные:

{
  "id": 23123123123,
  "name": "Petra",
  "tag": "Forest"
}

Использование

Формат данных

Для создания данных приближанных к реальному API используется Faker.js, который генерит случайные данные на основе поля format. Например для того что бы в строке был email необходимо в поле type указать string, а в поле format указать internet.email.

Полный список форматов можно найти тут.

Лимиты

Так же поддерживаются все ограничения Open API спецификации:

  • minLength
  • maxLength
  • minimum
  • maximum
  • ... e.t.c.

Например для того что бы API возвращало возраст от 10 до 18 мы можем описать такую схему:

type: number
minimum: 10
maximum: 18

То же самое можно сделать с длинной строки, колличеством элементов в массиве или использовать enum

Чуть больше о типах и их ограничениях можно прочитать в спеке Open API

Изображения

Smogger умеет генерить ссылки на рандомные изображения, используя какой либо из открытых сервисов рандомных картинок (по дефолту https://picsum.photos).

Сервис можно заменить через конфиг, передав в параметре -i ссылку сервис. Если сервис поддерживает указание в url раземеры картинок можно указать это в формате https://picsum.photos/<width>/<height>/?random.

ATTENTION

Сейчас генерятся только ответы application/json с кодом 200. В дальнейшем это будет доработано.

Так же на данный момент API не умеет работать с float.

Contributors

В проекте используется yarn и flow.

Supported by MoreTV with ❤️

Releases

No releases published

Packages

No packages published

Languages