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

OSCHINA-MIRROR/hkgit-koa-swagger

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

koa-swagger

  1. Установите зависимости для Swagger UI и Swagger Editor:
cd swagger-ui
npm install
cd ../swagger-editor
npm install
  1. Запустите Swagger UI и Swagger Editor:
cd swagger-ui
npm start
cd ../swagger-editor
npm start

Теперь у вас есть статический сервер, управляемый PM2, а также запущены сервисы Swagger UI и Swagger Editor.

1. Подготовка окружения

  • Установите последнюю версию nodejs
  • Создайте папку koa-swagger, в которой создайте папки swagger-ui и swagger-editor, а также файлы package.json и app.js

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 )

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

Введение

Используйте Koa2 для создания сервера статических файлов, используйте mp2 для управления Node-службой, создайте сервисы swagger-ui и swagger-editor. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hkgit-koa-swagger.git
git@api.gitlife.ru:oschina-mirror/hkgit-koa-swagger.git
oschina-mirror
hkgit-koa-swagger
hkgit-koa-swagger
master