-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswaggerAutogen.js
87 lines (81 loc) · 3.32 KB
/
swaggerAutogen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
"use strict"
require('dotenv').config()
const HOST = process.env?.HOST || '127.0.0.1'
const PORT = process.env?.PORT || 8000
/* ------------------------------------------------------- *
const options = {
openapi: <string>, // Enable/Disable OpenAPI. By default is null
language: <string>, // Change response language. By default is 'en-US'
disableLogs: <boolean>, // Enable/Disable logs. By default is false
autoHeaders: <boolean>, // Enable/Disable automatic headers recognition. By default is true
autoQuery: <boolean>, // Enable/Disable automatic query recognition. By default is true
autoBody: <boolean>, // Enable/Disable automatic body recognition. By default is true
writeOutputFile: <boolean> // Enable/Disable writing the output file. By default is true
};
/* ------------------------------------------------------- */
// const swaggerAutogen = require('swagger-autogen')({ openapi: '3.0.0', language: 'tr-tr' })
const swaggerAutogen = require('swagger-autogen')() //! çağırırken aynı zamanda çalıştırdık, çalıştırırken bazı ayarlar yapabiliriz. Yukarıdakiler bu ayarlar. Çok da gerekli değil
const packageJson = require('./package.json')
const document = {
//! uygulamam ile ilgili bilgiler yazabiliyoruz. Bunları manuel yazmak yerine package.json'dan da çekebiliriz. Yukarıda packageJson import ettik. böylece packagejson da bir değişiklik olursa bunu tekrar manule değiştirmeme gerek yok.
// info: {
// version: "1.0.0",
// title: "Personnel API",
// description: "Personnel Management API Service",
// termsOfService: "http://www.clarusway.com",
// contact: { name: "Clarusway", email: "[email protected]" },
// license: { name: "BSD License", },
// },
info: {
version: packageJson.version,
title: packageJson.title,
description: packageJson.description,
termsOfService: "http://www.clarusway.com",
contact: { name: packageJson.author, email: "[email protected]" },
license: { name: packageJson.license, },
},
host: `${HOST}:${PORT}`,
basePath: '/',
schemes: ['http', 'https'],
// SimpleToken Settings:
securityDefinitions: {
Token: {
type: 'apiKey',
in: 'header',
name: 'Authorization',
description: 'Simple Token Authentication * Example: <b>Token ...tokenKey...</b>'
},
},
security: [{ Token: [] }], //!Yukarıda securityDefinitions da tanımladığım yeri kullanıyorum
definitions: {
"/auth/login": {
username: {
type: "String",
required: true
},
password: {
type: "String",
required: true
},
},
"/auth/refresh": {
"token.refresh": {
description: "{ token: { refresh: ... } }",
type: "String",
required: true
}
},
// "Department": {
// "name": {
// type: "ObjectId",
// required: true
// }
// },
"Department": require('./src/models/department.model').schema.obj,
"Personnel": require('./src/models/personnel.model').schema.obj,
}
};
const routes = ['./index.js'] //! routeları taramaya index.js den başla
const outputFile = './swagger.json' //!yazacağın dosya da ana dizinde ve ismi "swagger.json"
// Create JSON file:
swaggerAutogen(outputFile, routes, document) //! swaggerAutogen çalıştırıyoruz. bu dosyaya bu routeları şu ayarlara göre yaz