1. Установка окружения
2. Загрузка swagger-ui
Откройте страницу swagger-ui на GitHub, скачайте zip-архив, распакуйте его и скопируйте все файлы из папки dist в папку /koa-swagger/swagger-ui
3. Загрузка swagger-editor
Откройте страницу swagger-editor на GitHub, скачайте zip-архив, распакуйте его и скопируйте все файлы из папки dist в папку /koa-swagger/swagger-editor
4. Редактирование файла package.json
{
"name": "koa-swagger",
"scripts": {
"start": "pm2 start app.js --name=swagger"
},
"dependencies": {
"koa": "^2.0.0",
"koa-bodyparser": "^3.2.0",
"koa-compress": "^2.0.0",
"koa-convert": "^1.2.0",
"koa-multer": "^1.0.2",
"koa-router": "^7.0.1",
"koa-static": "^4.0.2",
"koa-static-cache": "^5.1.1",
"koa2-cors": "^2.0.5"
}
}
5. Редактирование файла app.js
const Koa = require('koa')
const app = new Koa()
const path = require('path')
const bodyParser = require('koa-bodyparser')
const convert = require('koa-convert')
const staticCache = require('koa-static-cache')
const compress = require('koa-compress')
const cors = require('koa2-cors')
// Парсинг тела запроса
app.use(bodyParser())
// Настройка CORS
app.use(convert(cors({
allowMethods: ['GET', 'POST'],
allowHeaders: ['Content-Type', 'Accept'],
origin: function(ctx) {
return '*' // локальная среда
}
})))
// Настройка gzip сжатия
app.use(compress({
threshold: 2048,
flush: require("zlib").Z_SYNC_FLUSH
}))
// Сервер для обслуживания статических файлов, где корневым каталогом является koa-swagger
app.use(convert(staticCache(path.join(__dirname, './'), {
maxAge: 365 * 24 * 60 * 60,
dynamic: false // динамическое отслеживание изменений файлов
}))))
``````markdown
## 6. Установка зависимостей
Перейдите в папку `koa-swagger` и выполните следующие команды `npm`:
```bash
npm install -g pm2
npm install
Перейдите в папку koa-swagger
, затем выполните следующую команду в командной строке:
npm run start
Если после выполнения команды вы видите такой же вывод, как на приведённой картинке, значит всё прошло успешно.
Откройте браузер и введите адрес http://localhost:8882/swagger-ui/index.html
и http://localhost:8882/swagger-editor/index.html
для просмотра.
swagger.json
Откройте _/_koa-swagger/swagger-ui/index.html
, затем отредактируйте раздел "Build a system":
// Build a system
const ui = SwaggerUIBundle({
url: "http://localhost:8882/swagger.json", // Измените этот параметр на свой JSON-файл конфигурации, созданный с помощью swagger-editor
dom_id: '#swagger-ui',
deep_linking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
Скопируйте ваш файл swagger.json
, созданный с помощью swagger-editor
, в папку _/_koa-swagger
. В моём случае содержимое swagger.json
выглядит так:
{
"swagger": "2.0",
"info": {
"version": "0.0.1",
"title": "react-talkweb"
},
"host": "localhost:8881",
"tags": [{
"name": "test",
"description": "Тестовый интерфейс"
}],
"paths": {
"/test/login": {
"post": {
"tags": ["test"],
"summary": "Интерфейс входа",
"parameters": [{
"name": "param",
"in": "body",
"description": "Параметры входа",
"required": true,
"schema": {
"$ref": "#/definitions/loginParam"
}
}],
"responses": {
"200": {
"description": "Успешно"
}
}
}
}
}
}
post:
tags:
- "тест"
summary: "Интерфейс выбора системы"
parameters:
- name: "param"
in: "body"
description: "Параметры выбора системы"
required: true
schema:
$ref: '#/определения/portalParam'
responses:
200:
description: "Успешно"
/test/home:
post:
tags:
- "тест"
summary: "Главная страница"
parameters:
- name: "param"
in: "body"
description: "Параметры главной страницы"
required: true
schema:
$ref: '#/определения/homeParam'
responses:
200:
description: "Успешно"
```определения:
loginParam:
свойства:
имя_пользователя:
тип: "строка"
значение_по_умолчанию: "admin"
пароль:
тип: "строка"
значение_по_умолчанию: "test@123"
обязательные_параметры:
- "имя_пользователя"
- "пароль"
portalParam:
свойства:
идентификатор:
тип: "строка"
обязательные_параметры:
- "идентификатор"
homeParam:
свойства:
userid:
тип: "строка"
systemid:
тип: "строка"
обязательные_параметры:
- "userid"
- "systemid"
```**10. Перезапустить pm2 сервис**
pm2 restart all
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )