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

OSCHINA-MIRROR/jaywcjlove-mocker-api

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Mocker API создаёт макеты для REST API. Это может быть полезно при тестировании приложения без реального сервера REST API.

Возможности:

🔥 Встроенная поддержка горячей замены файлов Mocker.
🚀 Быстрая и простая настройка API через JSON.
🌱 Простота проксирования фиктивного API.
💥 Может использоваться независимо, без использования webpack и webpack-dev-server.

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

mkdir mocker-app && cd mocker-app

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

# Глобальная установка зависимостей.
npm install mocker-api -g

# Порт по умолчанию: 3721
mocker ./api.js

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

Установка

Вы можете добавить его в конфигурацию package.json как зависимость текущего проекта.

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-путь. Ключи объекта будут использоваться в качестве RegExp для сопоставления путей.
    // https://github.com/jaywcjlove/mocker-api/issues/62
    pathRewrite: {
      '^/api/repos/': '/repos/',
    },
    changeHost: true,
    // Изменить параметры http-прокси
    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
``` **Перевод текста на русский язык:**

[webpack](https://github.com/webpack/webpack) и [webpack-dev-server](https://github.com/webpack/webpack-dev-server).
```bash
# Глобальная установка зависимостей.
npm install mocker-api -g
# Запуск сервера
mocker ./mocker/index.js

Или вы можете добавить это в package.json как зависимость текущего проекта.

{
  "name": "base-example",
  "scripts": {
+    "api": "mocker ./mocker"
  },
  "devDependencies": {
+    "mocker-api": "2.9.4"
  },
+  "mocker": {
+    "port": 7788
+  },
  "license": "MIT"
}

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

Пример Express, чтобы использовать api mocker в ваших проектах express.

⚠️ Не зависит от webpack и webpack-dev-server.

const express = require('express');
+ const path = require('path');
+ const apiMocker = require('mocker-api');

const app = express();

+ apiMocker(app, path.resolve('./mocker/index.js'))
app.listen(8080);

или

const express = require('express');
+ const apiMocker = require('mocker-api');

const app = express();

+ apiMocker(app, {
+   'GET /api/user': {
+     id: 1,
+     sex: 0
+   }
+ });

app.listen(8080);

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

Пример webpack, чтобы использовать api mocker в ваших проектах Webpack. Просто добавьте настройки установки в настройки [webpack-dev-server]:

Измените файл конфигурации, чтобы сообщить серверу разработки, где искать файлы: webpack.config.js.

const HtmlWebpackPlugin = require('html-webpack-plugin');
+ const path = require('path');
+ const apiMocker = require('mocker-api');

module.exports = {
  entry: {
    app: './src/index.js',
  },
  output: {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
+ devServer: {
+   ...
+   before(app){
+     apiMocker(app, path.resolve('./mocker/index.js'), {
+       proxy: {
+         '/repos/(.*)': 'https://api.github.com/',
+         '/:owner/:repo/raw/:ref/(.*)': 'http://127.0.0.1:2018'
+       },
+       changeHost: true,
+     })
+   }
+ },
  plugins: [
    new HtmlWebpackPlugin({
      template: path.resolve('./public/index.html'),
      title: 'Webpack App Mocker API'
    })
  ],
};

Должен быть файл с суффиксом! Например: ./mocker/index.js.

Давайте добавим скрипт для лёгкого запуска сервера разработки: package.json.

{
  "name": "development",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
+    "start": "webpack serve --progress --mode development",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "html-webpack-plugin": "4.5.0",
    "mocker-api": "2.9.4",
    "webpack": "5.22.0",
    "webpack-cli": "4.5.0",
    "webpack-dev-server": "3.11.2"
  }
}

Проксирование фиктивного API стало проще.

{
  before(app){
+   apiMocker(app, path.resolve('./mocker/index.js'), {
+     proxy: {
+       '/repos/(.*)': 'https://api.github.com/',
+     },
+     changeHost: true,
+   })
  }
}

Использование с create-react-app

Пример create-react-app, чтобы использовать api mocker в вашем проекте [create-react-app]. Создайте src/setupProxy.js и поместите следующее содержимое в него:

+ const apiMocker = require('mocker-api');
+ const path = require('path');

module.exports = function(app) {
+  apiMocker(app,
``` ```
path.resolve('./mocker/index.js'), {
  proxy: {
    '/repos/(.*)': 'https://api.github.com/',
  },
  changeHost: true,
};
```;

```diff
{
  .....
  "devDependencies": {
    "mocker-api": "2.9.4"
  },
  ....
}

Development

$ yarn install
$ yarn run build
$ yarn run watch
$ yarn run test

License

MIT © Kenny Wong

Комментарии ( 0 )

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

Введение

Используется для создания имитации REST API, имитирующей реальный API. Это будет полезно, когда вы пытаетесь протестировать приложение без наличия реального сервера REST API. Развернуть Свернуть
MIT
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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