code upload
This commit is contained in:
parent
20439c328c
commit
2572089394
|
@ -1,47 +0,0 @@
|
||||||
pipeline {
|
|
||||||
agent {label 'html'}
|
|
||||||
stages {
|
|
||||||
stage('Check host') {
|
|
||||||
steps {
|
|
||||||
withCredentials(bindings: [sshUserPrivateKey(credentialsId: '301d16da-51e4-438d-abf7-51b88a05bcec', \
|
|
||||||
keyFileVariable: 'SSH_KEY_PEREC', usernameVariable: 'SSH_USERNAME')]) {
|
|
||||||
sh '''
|
|
||||||
ssh -i $SSH_KEY_PEREC -o StrictHostKeyChecking=no $SSH_USERNAME@172.16.0.22 "freebsd-version"
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Deploy site rsync') {
|
|
||||||
steps {
|
|
||||||
withCredentials(bindings: [sshUserPrivateKey(credentialsId: '301d16da-51e4-438d-abf7-51b88a05bcec', \
|
|
||||||
keyFileVariable: 'SSH_KEY_PEREC', usernameVariable: 'SSH_USERNAME')]) {
|
|
||||||
sh '''
|
|
||||||
rsync -avz --delete -e "ssh -i $SSH_KEY_PEREC -o StrictHostKeyChecking=no" src/ $SSH_USERNAME@172.16.0.22:/home/$SSH_USERNAME/site/web_example_static/
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// stage ('Deploy site ssh){
|
|
||||||
// steps {
|
|
||||||
// withCredentials(bindings: [sshUserPrivateKey(credentialsId: '301d16da-51e4-438d-abf7-51b88a05bcec', \
|
|
||||||
// keyFileVariable: 'SSH_KEY_PEREC', usernameVariable: 'SSH_USERNAME')]) {
|
|
||||||
// sh '''
|
|
||||||
// scp -rp -i $SSH_KEY_PEREC -o StrictHostKeyChecking=no src/* $SSH_USERNAME@172.16.0.22:/home/$SSH_USERNAME/site/web_example_static/
|
|
||||||
// '''
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
// post{
|
|
||||||
// success {
|
|
||||||
// echo "success"
|
|
||||||
// }
|
|
||||||
// failure {
|
|
||||||
// echo "failure"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,5 +1,3 @@
|
||||||
# example_static
|
# API Docs
|
||||||
|
|
||||||
[![Build Status](https://jenkins.myhome.ru.net/buildStatus/icon?job=GiteaMyHome%2Fexample_static%2Fmain)](https://jenkins.myhome.ru.net/job/GiteaMyHome/job/example_static/job/main/)
|
API docs
|
||||||
|
|
||||||
Example HTML static website
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Example HTML5 site final</title>
|
|
||||||
<link rel="stylesheet" href="/css/style.css">
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"name": "ecokam-openapi",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"main": "server.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"description": "",
|
||||||
|
"dependencies": {
|
||||||
|
"swagger-jsdoc": "^6.2.8",
|
||||||
|
"swagger-ui-express": "^5.0.1"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* tags:
|
||||||
|
* name: auth
|
||||||
|
* description: API авторизации
|
||||||
|
* /v1/auth/signup:
|
||||||
|
* post:
|
||||||
|
* summary: Регистрация нового пользователя
|
||||||
|
* tags: [auth]
|
||||||
|
* requestBody:
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* username:
|
||||||
|
* type: string
|
||||||
|
* email:
|
||||||
|
* type: string
|
||||||
|
* password:
|
||||||
|
* type: string
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Успешная регистрация нового пользователя
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: User was registered successfully!
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/auth/signin:
|
||||||
|
* post:
|
||||||
|
* summary: Авторизация существующего пользователя
|
||||||
|
* tags: [auth]
|
||||||
|
* requestBody:
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* username:
|
||||||
|
* type: string
|
||||||
|
* password:
|
||||||
|
* type: string
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Успешный вход
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* id:
|
||||||
|
* type: integer
|
||||||
|
* username:
|
||||||
|
* type: string
|
||||||
|
* email:
|
||||||
|
* type: string
|
||||||
|
* roles:
|
||||||
|
* type: array
|
||||||
|
* accessToken:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* id: 1
|
||||||
|
* username: admin
|
||||||
|
* email: admin@eample.net
|
||||||
|
* roles: ["admin"]
|
||||||
|
* accessToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNzE3ODE4MzQ4LCJleHAiOjE3MTc5MDQ3NDh9.xdcOolYP8Sc_ls0VB1McdJItn0iU0Cuvpad67AERIXU
|
||||||
|
* 404:
|
||||||
|
* description: Пользователь не найден
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: User Not found.
|
||||||
|
*/
|
|
@ -0,0 +1,193 @@
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* components:
|
||||||
|
* schemas:
|
||||||
|
* FileEvent:
|
||||||
|
* type: object
|
||||||
|
* required:
|
||||||
|
* - id
|
||||||
|
* properties:
|
||||||
|
* id:
|
||||||
|
* type: string
|
||||||
|
* format: uuid
|
||||||
|
* description: UUID файла
|
||||||
|
* filename:
|
||||||
|
* type: string
|
||||||
|
* description: Имя файла
|
||||||
|
* eventdate:
|
||||||
|
* type: string
|
||||||
|
* format: date
|
||||||
|
* description: Дата события
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* description: Описание события
|
||||||
|
* latitude:
|
||||||
|
* type: string
|
||||||
|
* description: Широта
|
||||||
|
* longitude:
|
||||||
|
* type: string
|
||||||
|
* description: Долгота
|
||||||
|
* status:
|
||||||
|
* type: integer
|
||||||
|
* description: Статус
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* tags:
|
||||||
|
* name: files
|
||||||
|
* description: API работы с файлами
|
||||||
|
* /v1/upload:
|
||||||
|
* post:
|
||||||
|
* summary: Загрузка файла
|
||||||
|
* tags: [files]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* multipart/form-data:
|
||||||
|
* schema:
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* id:
|
||||||
|
* type: string
|
||||||
|
* format: uuid
|
||||||
|
* eventdate:
|
||||||
|
* type: string
|
||||||
|
* format: date
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* latitude:
|
||||||
|
* type: string
|
||||||
|
* longitude:
|
||||||
|
* type: string
|
||||||
|
* file:
|
||||||
|
* type: string
|
||||||
|
* format: binary
|
||||||
|
* encoding:
|
||||||
|
* file: # Property name
|
||||||
|
* contentType: image/png, image/jpeg
|
||||||
|
* headers: # Custom headers
|
||||||
|
* X-Custom-Header:
|
||||||
|
* description: This is a custom header
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Файл загружен
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: file was upload successfully!
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/files:
|
||||||
|
* get:
|
||||||
|
* summary: Список загруженых файлов
|
||||||
|
* tags: [files]
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Списов загруженых файлов
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema:
|
||||||
|
* type: array
|
||||||
|
* items:
|
||||||
|
* $ref: '#/components/schemas/FileEvent'
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/files/{id}:
|
||||||
|
* get:
|
||||||
|
* summary: Проверить наличие файла по идетификатору
|
||||||
|
* tags: [files]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: false
|
||||||
|
* description: Идентификатор файла
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Файл по идентификатору
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* status:
|
||||||
|
* type: boolean
|
||||||
|
* 404:
|
||||||
|
* description: Файл не найден
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* status:
|
||||||
|
* type: boolean
|
||||||
|
* default: false
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/event/{id}:
|
||||||
|
* put:
|
||||||
|
* summary: Обновить статус по идетификатору
|
||||||
|
* tags: [files]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: false
|
||||||
|
* description: Идентификатор файла события
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* status:
|
||||||
|
* type: integer
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Статус события обновлен по идентификатору
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
*
|
||||||
|
*/
|
|
@ -0,0 +1,174 @@
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* components:
|
||||||
|
* schemas:
|
||||||
|
* Role:
|
||||||
|
* type: object
|
||||||
|
* required:
|
||||||
|
* - id
|
||||||
|
* - name
|
||||||
|
* properties:
|
||||||
|
* id:
|
||||||
|
* type: string
|
||||||
|
* description: Автогенерируемый идентификатор роли
|
||||||
|
* name:
|
||||||
|
* type: string
|
||||||
|
* description: Наименование роли
|
||||||
|
* example:
|
||||||
|
* id: 1
|
||||||
|
* name: admin
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* tags:
|
||||||
|
* name: roles
|
||||||
|
* description: API управления ролями (административное)
|
||||||
|
* /v1/role:
|
||||||
|
* get:
|
||||||
|
* summary: Получить список ролей
|
||||||
|
* tags: [roles]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Список всех ролей
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* type: array
|
||||||
|
* items:
|
||||||
|
* $ref: '#/components/schemas/Role'
|
||||||
|
* post:
|
||||||
|
* summary: Создание новой роли
|
||||||
|
* tags: [roles]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* name:
|
||||||
|
* type: string
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Роль создана
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: Role was create successfully!
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/roles/{id}:
|
||||||
|
* get:
|
||||||
|
* summary: Получить роль по идентификатору
|
||||||
|
* tags: [roles]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор роли
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Роль по идентификатору
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* $ref: '#/components/schemas/Role'
|
||||||
|
* 404:
|
||||||
|
* description: Роль не найдена
|
||||||
|
* put:
|
||||||
|
* summary: Изменение роли по идентификатору
|
||||||
|
* tags: [roles]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор роли
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* $ref: '#/components/schemas/Role'
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: The role was updated
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: Role was update successfully!
|
||||||
|
* 404:
|
||||||
|
* description: Роль не найдена
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* delete:
|
||||||
|
* summary: Удаление роли по идентификатору
|
||||||
|
* tags: [roles]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор роли
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Роль удалена
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: Role was delete successfully!
|
||||||
|
* 404:
|
||||||
|
* description: Роль не найдена
|
||||||
|
*/
|
|
@ -0,0 +1,191 @@
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* components:
|
||||||
|
* schemas:
|
||||||
|
* User:
|
||||||
|
* type: object
|
||||||
|
* required:
|
||||||
|
* - id
|
||||||
|
* - username
|
||||||
|
* - email
|
||||||
|
* - password
|
||||||
|
* - role
|
||||||
|
* properties:
|
||||||
|
* id:
|
||||||
|
* type: string
|
||||||
|
* description: Автогенерируемый идентификатор поьзователя
|
||||||
|
* name:
|
||||||
|
* type: string
|
||||||
|
* description: Имя пользователя
|
||||||
|
* password:
|
||||||
|
* type: string
|
||||||
|
* description: Пароль
|
||||||
|
* role:
|
||||||
|
* type: array
|
||||||
|
* description: Список ролей доступных пользователю
|
||||||
|
* example:
|
||||||
|
* id: 1
|
||||||
|
* username: user
|
||||||
|
* email: "user@example.net"
|
||||||
|
* password: secretpassword
|
||||||
|
* roles: [ "user", "moderator"]
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* tags:
|
||||||
|
* name: users
|
||||||
|
* description: API управления пользователями (административное)
|
||||||
|
* /v1/user:
|
||||||
|
* get:
|
||||||
|
* summary: Список всех пользователей
|
||||||
|
* tags: [users]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Список всех пользователей
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* type: array
|
||||||
|
* items:
|
||||||
|
* $ref: '#/components/schemas/User'
|
||||||
|
* example:
|
||||||
|
* id: 1
|
||||||
|
* username: user1
|
||||||
|
* email: "user1@example.net"
|
||||||
|
* password: secretpassword1
|
||||||
|
* roles: [ "user", "moderator"]
|
||||||
|
*
|
||||||
|
* post:
|
||||||
|
* summary: Создание нового пользователя
|
||||||
|
* tags: [users]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* $ref: '#/components/schemas/User'
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Пользователь успешно создан
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: User was registered successfully!
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* /v1/users/{id}:
|
||||||
|
* get:
|
||||||
|
* summary: Получить пользователя по идетификатору
|
||||||
|
* tags: [users]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор пользователя
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Пользователь по идентификатору
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* $ref: '#/components/schemas/User'
|
||||||
|
* 404:
|
||||||
|
* description: Пользователь не найден
|
||||||
|
* put:
|
||||||
|
* summary: Изменение пользователя по идентификатору
|
||||||
|
* tags: [users]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор пользователя
|
||||||
|
* requestBody:
|
||||||
|
* required: true
|
||||||
|
* content:
|
||||||
|
* application/json:
|
||||||
|
* schema:
|
||||||
|
* $ref: '#/components/schemas/User'
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Данные пользователя изменены
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: User was update successfully!
|
||||||
|
* 404:
|
||||||
|
* description: Пользователь не найден
|
||||||
|
* 500:
|
||||||
|
* description: Ошибка сервера
|
||||||
|
* delete:
|
||||||
|
* summary: Удаление пользователя по идентификатору
|
||||||
|
* tags: [users]
|
||||||
|
* parameters:
|
||||||
|
* - in: header
|
||||||
|
* name: x-access-token
|
||||||
|
* schema:
|
||||||
|
* type: string
|
||||||
|
* required: true
|
||||||
|
* description: Токен авторизации
|
||||||
|
* - in: path
|
||||||
|
* name: id
|
||||||
|
* schema:
|
||||||
|
* type: integer
|
||||||
|
* required: true
|
||||||
|
* description: Идентификатор пользователя
|
||||||
|
*
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Пользователь удален
|
||||||
|
* content:
|
||||||
|
* application/json: # Media type
|
||||||
|
* schema: # Request body contents
|
||||||
|
* type: object
|
||||||
|
* properties:
|
||||||
|
* message:
|
||||||
|
* type: string
|
||||||
|
* example:
|
||||||
|
* message: User was delete successfully!
|
||||||
|
* 404:
|
||||||
|
* description: Пользователь не найден
|
||||||
|
*/
|
|
@ -0,0 +1,43 @@
|
||||||
|
|
||||||
|
const express = require("express"),
|
||||||
|
bodyParser = require("body-parser"),
|
||||||
|
swaggerJsdoc = require("swagger-jsdoc"),
|
||||||
|
swaggerUi = require("swagger-ui-express");
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
definition: {
|
||||||
|
openapi: "3.1.0",
|
||||||
|
info: {
|
||||||
|
title: "ECOKAM API",
|
||||||
|
// version: "0.1.0",
|
||||||
|
description:
|
||||||
|
"Документация по API",
|
||||||
|
},
|
||||||
|
servers: [
|
||||||
|
{
|
||||||
|
url: "http://127.0.0.1:3201/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "https://api.beartrack.ru/",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
apis: ["./routes/*.js"],
|
||||||
|
};
|
||||||
|
|
||||||
|
const specs = swaggerJsdoc(options);
|
||||||
|
|
||||||
|
app.use(
|
||||||
|
"/api-docs",
|
||||||
|
swaggerUi.serve,
|
||||||
|
swaggerUi.setup(specs)
|
||||||
|
);
|
||||||
|
|
||||||
|
const PORT = process.env.PORT || 3200;
|
||||||
|
app.listen(PORT, () => {
|
||||||
|
console.log(`Server is running on port ${PORT}.`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue