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

OSCHINA-MIRROR/hkgit-koa-swagger

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

koa-swagger

1. Установка окружения

  • Установите последнюю версию Node.js
  • Создайте папку 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
## 6. Установка зависимостей

Перейдите в папку `koa-swagger` и выполните следующие команды `npm`:

```bash
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',
	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 )

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

Введение

Используйте 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