cd swagger-ui
npm install
cd ../swagger-editor
npm install
cd swagger-ui
npm start
cd ../swagger-editor
npm start
Теперь у вас есть статический сервер, управляемый PM2, а также запущены сервисы Swagger UI и Swagger Editor.
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
const port = 8882
app.listen(port, () => {
console.log(`слушаем порт ${port} для swagger`)
})
6. Установка зависимостей
Перейти в папку koa-swagger и ввести следующие команды в командной строке:
npm install -g pm2
npm install
7. Запуск сервиса
Перейти в папку koa-swagger и ввести следующую команду в командной строке:
npm run start
Если в командной строке появляется следующий результат, значит все выполнено успешно:
8. Просмотр результата
Открыть браузер и ввести следующие адреса для просмотра:
http://localhost:8882/swagger-ui/index.html
http://localhost:8882/swagger-editor/index.html
9. Указание 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',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
```Скопировать swagger.json файл, созданный с помощью swagger-editor, в папку _/koa-swagger_. Мой swagger.json файл содержит следующее:
```markdown
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: "Успех"
/test/portal:
post:
tags:
- "test"
summary: "Интерфейс выбора системы"
parameters:
- name: "param"
in: "body"
description: "Параметры выбора системы"
required: true
schema:
$ref: '#/definitions/portalParam'
responses:
200:
description: "Успех"
/test/home:
post:
tags:
- "test"
summary: "Интерфейс главной страницы"
parameters:
- name: "param"
in: "body"
description: "Параметры главной страницы"
required: true
schema:
$ref: '#/definitions/homeParam'
responses:
200:
description: "Успех"
определения: loginParam: properties: username: type: "string" default: "admin" password: type: "string" default: "test@123" required: - "username" - "password" portalParam: properties: id: type: "string" required: - "id" homeParam: properties: userid: type: "string" systemid: type: "string" required: - "userid" - "systemid"
pm2 restart all
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )