1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jaywcjlove-mocker-api

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README-zh.md 3.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 02:08 54a03b3

Mocker API — это инструмент для создания имитаций REST API. Он может быть полезен при тестировании приложений без реального сервера REST API.

Особенности:

  • встроенная поддержка горячего обновления файлов Mocker;
  • быстрая и лёгкая настройка API с помощью JSON;
  • упрощение имитации прокси-сервера API;
  • возможность использования независимо от webpack и webpack-dev-server.

Быстрый старт

mkdir mocker-app && cd mocker-app

# Создание файла конфигурации программы-имитации по правилам
touch api.js

# Глобальная установка
npm install mocker-api -g
# Запуск сервиса
mocker ./api.js

# Запустить сервер на localhost:8000
mocker ./api.js --host localhost --port 8000

Установка

Добавьте его в раздел зависимостей вашего проекта.

npm install mocker-api --save-dev

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

Mocker API поддерживает имитацию, которую можно настроить в файле mocker / index.js.

Вы можете изменить параметры http-proxy и добавить прослушиватели событий, добавив конфигурацию httpProxy.

const proxy = {
  // Обработка в первую очередь.
  // apiMocker(app, path, option)
  // Это параметры опции для apiMocker
  _proxy: {
    proxy: {
      // Преобразование пути строки (например, `/user/:name`) в регулярное выражение.
      // https://www.npmjs.com/package/path-to-regexp
      '/repos/(.*)': 'https://api.github.com/',
      '/:owner/:repo/raw/:ref/(.*)': 'http://127.0.0.1:2018',
      '/api/repos/(.*)': 'http://127.0.0.1:3721/'
    },
    // Перезапись целевого URL-адреса. Ключ объекта будет использоваться как регулярное выражение для сопоставления пути.
    // https://github.com/jaywcjlove/mocker-api/issues/62
    pathRewrite: {
      '^/api/repos/': '/repos/',
    },
    changeHost: true,
    // Изменение параметров http-proxy
    httpProxy: {
      options: {
        ignorePath: true,
      },
      listeners: {
        proxyReq: function (proxyReq, req, res, options) {
          console.log('proxyReq');
        },
      },
    },    
  },
  // =====================
  // По умолчанию GET запрос.
  // https://github.com/jaywcjlove/mocker-api/pull/63
  '/api/user': {
    id: 1,
    username: 'kenny',
    sex: 6
  },
  'GET /api/user': {
    id: 1,
    username: 'kenny',
    sex: 6
  },
  'GET /api/user/list': [
    {
      id: 1,
      username: 'kenny',
      sex: 6
    }, {
      id: 2,
      username: 'kenny',
      sex: 6
    }
  ],
  'GET /api/:owner/:repo/raw/:ref/(.*)': (req, res) => {
    const { owner, repo, ref } = req.params;
    // http://localhost:8081/api/admin/webpack-mock-api/raw/master/add/ddd.md
    // owner => admin
    // repo => webpack-mock-api
    // ref => master
    // req.params[0] => add/ddd.md
    return res.json({
      id: 1,
      owner, repo, ref,
      path: req.params[0]
    });
  },
  'POST /api/login/account': (req, res) => {
    const { password, username } = req.body;
    if (password === '888888' && username === 'admin') {
      return res.json({
        status: 'ok',
        code: 0,
        token: "sdfsdfsdfdsf",
        data: {
          id: 1,
          username: 'kenny',
          sex: 6
        }
      });
    } else {
      return res.status(403).json({

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jaywcjlove-mocker-api.git
git@api.gitlife.ru:oschina-mirror/jaywcjlove-mocker-api.git
oschina-mirror
jaywcjlove-mocker-api
jaywcjlove-mocker-api
master