Skip to content

Commit

Permalink
🧑‍💻 feat(docs): OpenAPI 문서에 Redoc 추가
Browse files Browse the repository at this point in the history
(cherry picked from commit 4178514)
  • Loading branch information
kms0219kms committed Feb 2, 2024
1 parent d3d9ab5 commit 534a8fd
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 8 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
},
"dependencies": {
"@fastify/static": "^6.12.0",
"@jozefazz/nestjs-redoc": "^1.0.7",
"@nestjs/axios": "^3.0.1",
"@nestjs/cache-manager": "^2.2.0",
"@nestjs/common": "^10.3.0",
Expand Down
11 changes: 9 additions & 2 deletions src/app.controller.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
import { Controller, Get } from '@nestjs/common';
import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import {
ApiOkResponse,
ApiOperation,
ApiProperty,
ApiTags,
} from '@nestjs/swagger';

class rootAccessDto {
/**
* Default return
* @example hacking
*/
happy = 'hacking';
@ApiProperty({ example: 'hacking' })
happy: string = 'hacking';
}

@ApiTags('Common - Health Check API')
Expand Down
12 changes: 10 additions & 2 deletions src/main.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import {
FastifyAdapter,
NestFastifyApplication,
} from '@nestjs/platform-fastify';

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { RedocModule, RedocOptions } from '@jozefazz/nestjs-redoc';

import { AppModule } from './app.module';
import { version } from '../package.json';
import { GlobalExceptionFilter } from './common/filter/global-exception.filter';
Expand All @@ -24,7 +26,13 @@ async function bootstrap() {
.build();

const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('docs', app, document);

const redocOptions: RedocOptions = {
title: 'NGuard Security API',
};

await SwaggerModule.setup('docs', app, document);
await RedocModule.setup('redoc', app, document, redocOptions);
}

if (process.env.GLOBAL_CORS === '1') {
Expand Down
170 changes: 166 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,22 @@ __metadata:
languageName: node
linkType: hard

"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0":
version: 9.3.0
resolution: "@hapi/hoek@npm:9.3.0"
checksum: ad83a223787749f3873bce42bd32a9a19673765bf3edece0a427e138859ff729469e68d5fdf9ff6bbee6fb0c8e21bab61415afa4584f527cfc40b59ea1957e70
languageName: node
linkType: hard

"@hapi/topo@npm:^5.1.0":
version: 5.1.0
resolution: "@hapi/topo@npm:5.1.0"
dependencies:
"@hapi/hoek": "npm:^9.0.0"
checksum: 084bfa647015f4fd3fdd51fadb2747d09ef2f5e1443d6cbada2988b0c88494f85edf257ec606c790db146ac4e34ff57f3fcb22e3299b8e06ed5c87ba7583495c
languageName: node
linkType: hard

"@humanwhocodes/config-array@npm:^0.11.13":
version: 0.11.13
resolution: "@humanwhocodes/config-array@npm:0.11.13"
Expand Down Expand Up @@ -285,6 +301,24 @@ __metadata:
languageName: node
linkType: hard

"@jozefazz/nestjs-redoc@npm:^1.0.7":
version: 1.0.7
resolution: "@jozefazz/nestjs-redoc@npm:1.0.7"
dependencies:
"@nestjs/common": "npm:^10.0.0"
"@nestjs/swagger": "npm:^7.1.17"
express-basic-auth: "npm:^1.2.1"
express-handlebars: "npm:^7.1.2"
joi: "npm:^17.11.0"
peerDependencies:
"@nestjs/common": ^10.0.0
"@nestjs/core": ^10.0.0
"@nestjs/swagger": ^7.1.17
reflect-metadata: ^0.1.13
checksum: abf112e709f21ddfcce6d9468dc1947415eccf4760aa0c1af32b81eaa9a9fb52d0e8d33fd4505ea764fea0f41a01e25921d0420d22a50c2fa6604b8f49381ea6
languageName: node
linkType: hard

"@jridgewell/gen-mapping@npm:^0.3.0":
version: 0.3.3
resolution: "@jridgewell/gen-mapping@npm:0.3.3"
Expand Down Expand Up @@ -444,6 +478,27 @@ __metadata:
languageName: node
linkType: hard

"@nestjs/common@npm:^10.0.0":
version: 10.3.1
resolution: "@nestjs/common@npm:10.3.1"
dependencies:
iterare: "npm:1.2.1"
tslib: "npm:2.6.2"
uid: "npm:2.0.2"
peerDependencies:
class-transformer: "*"
class-validator: "*"
reflect-metadata: ^0.1.12
rxjs: ^7.1.0
peerDependenciesMeta:
class-transformer:
optional: true
class-validator:
optional: true
checksum: 39b004b2cd7e2399ef9e6e3afda67a34abe1bea93360ed065423ffe2b278cf5f3a29b4bc70586de0d6051c3bb8d6b7e556fce40ba372c2bb15a01e84feaece29
languageName: node
linkType: hard

"@nestjs/common@npm:^10.3.0":
version: 10.3.0
resolution: "@nestjs/common@npm:10.3.0"
Expand Down Expand Up @@ -724,6 +779,29 @@ __metadata:
languageName: node
linkType: hard

"@sideway/address@npm:^4.1.5":
version: 4.1.5
resolution: "@sideway/address@npm:4.1.5"
dependencies:
"@hapi/hoek": "npm:^9.0.0"
checksum: c4c73ac0339504f34e016d3a687118e7ddf197c1c968579572123b67b230be84caa705f0f634efdfdde7f2e07a6e0224b3c70665dc420d8bc95bf400cfc4c998
languageName: node
linkType: hard

"@sideway/formula@npm:^3.0.1":
version: 3.0.1
resolution: "@sideway/formula@npm:3.0.1"
checksum: 8d3ee7f80df4e5204b2cbe92a2a711ca89684965a5c9eb3b316b7051212d3522e332a65a0bb2a07cc708fcd1d0b27fcb30f43ff0bcd5089d7006c7160a89eefe
languageName: node
linkType: hard

"@sideway/pinpoint@npm:^2.0.0":
version: 2.0.0
resolution: "@sideway/pinpoint@npm:2.0.0"
checksum: 1ed21800128b2b23280ba4c9db26c8ff6142b97a8683f17639fd7f2128aa09046461574800b30fb407afc5b663c2331795ccf3b654d4b38fa096e41a5c786bf8
languageName: node
linkType: hard

"@tsconfig/node10@npm:^1.0.7":
version: 1.0.9
resolution: "@tsconfig/node10@npm:1.0.9"
Expand Down Expand Up @@ -1387,6 +1465,15 @@ __metadata:
languageName: node
linkType: hard

"basic-auth@npm:^2.0.1":
version: 2.0.1
resolution: "basic-auth@npm:2.0.1"
dependencies:
safe-buffer: "npm:5.1.2"
checksum: 3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48
languageName: node
linkType: hard

"binary-extensions@npm:^2.0.0":
version: 2.2.0
resolution: "binary-extensions@npm:2.2.0"
Expand Down Expand Up @@ -2230,6 +2317,26 @@ __metadata:
languageName: node
linkType: hard

"express-basic-auth@npm:^1.2.1":
version: 1.2.1
resolution: "express-basic-auth@npm:1.2.1"
dependencies:
basic-auth: "npm:^2.0.1"
checksum: f373f8ecb40ded26839eeba204160de465bd0d8dc09f924b18782a01bf4289308c60a9440026aecfc463d5659ec31ace3c664c79fc21542a22b449779e06e880
languageName: node
linkType: hard

"express-handlebars@npm:^7.1.2":
version: 7.1.2
resolution: "express-handlebars@npm:7.1.2"
dependencies:
glob: "npm:^10.3.3"
graceful-fs: "npm:^4.2.11"
handlebars: "npm:^4.7.8"
checksum: 63edb9d4a5f826ac1c563f75f061fe21539938fd08b1c0dd4fc34be5c893af3403a80cd0f034820876a23d0adbf261d1513cb755383d9aa91ed36e8f17b221ec
languageName: node
linkType: hard

"external-editor@npm:^3.0.3, external-editor@npm:^3.1.0":
version: 3.1.0
resolution: "external-editor@npm:3.1.0"
Expand Down Expand Up @@ -2655,7 +2762,7 @@ __metadata:
languageName: node
linkType: hard

"glob@npm:10.3.10, glob@npm:^10.2.2, glob@npm:^10.3.10":
"glob@npm:10.3.10, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.3":
version: 10.3.10
resolution: "glob@npm:10.3.10"
dependencies:
Expand Down Expand Up @@ -2741,7 +2848,7 @@ __metadata:
languageName: node
linkType: hard

"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
Expand All @@ -2755,6 +2862,24 @@ __metadata:
languageName: node
linkType: hard

"handlebars@npm:^4.7.8":
version: 4.7.8
resolution: "handlebars@npm:4.7.8"
dependencies:
minimist: "npm:^1.2.5"
neo-async: "npm:^2.6.2"
source-map: "npm:^0.6.1"
uglify-js: "npm:^3.1.4"
wordwrap: "npm:^1.0.0"
dependenciesMeta:
uglify-js:
optional: true
bin:
handlebars: bin/handlebars
checksum: bd528f4dd150adf67f3f857118ef0fa43ff79a153b1d943fa0a770f2599e38b25a7a0dbac1a3611a4ec86970fd2325a81310fb788b5c892308c9f8743bd02e11
languageName: node
linkType: hard

"has-flag@npm:^3.0.0":
version: 3.0.0
resolution: "has-flag@npm:3.0.0"
Expand Down Expand Up @@ -3123,6 +3248,19 @@ __metadata:
languageName: node
linkType: hard

"joi@npm:^17.11.0":
version: 17.12.1
resolution: "joi@npm:17.12.1"
dependencies:
"@hapi/hoek": "npm:^9.3.0"
"@hapi/topo": "npm:^5.1.0"
"@sideway/address": "npm:^4.1.5"
"@sideway/formula": "npm:^3.0.1"
"@sideway/pinpoint": "npm:^2.0.0"
checksum: 6c48ed73e091d6328d9062aa9647b83e971004f2ab7a58a0e8bdee68cd4295e4141981a79461f85bd70333a77d6865fc2420bf9b392e2287384008f4f781ea71
languageName: node
linkType: hard

"js-tokens@npm:^4.0.0":
version: 4.0.0
resolution: "js-tokens@npm:4.0.0"
Expand Down Expand Up @@ -3464,7 +3602,7 @@ __metadata:
languageName: node
linkType: hard

"minimist@npm:^1.2.6":
"minimist@npm:^1.2.5, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f
Expand Down Expand Up @@ -3709,6 +3847,7 @@ __metadata:
resolution: "nguard_security_api_renewal@workspace:."
dependencies:
"@fastify/static": "npm:^6.12.0"
"@jozefazz/nestjs-redoc": "npm:^1.0.7"
"@nestjs/axios": "npm:^3.0.1"
"@nestjs/cache-manager": "npm:^2.2.0"
"@nestjs/cli": "npm:^10.0.0"
Expand Down Expand Up @@ -4385,6 +4524,13 @@ __metadata:
languageName: node
linkType: hard

"safe-buffer@npm:5.1.2":
version: 5.1.2
resolution: "safe-buffer@npm:5.1.2"
checksum: 7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a
languageName: node
linkType: hard

"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
Expand Down Expand Up @@ -4590,7 +4736,7 @@ __metadata:
languageName: node
linkType: hard

"source-map@npm:^0.6.0":
"source-map@npm:^0.6.0, source-map@npm:^0.6.1":
version: 0.6.1
resolution: "source-map@npm:0.6.1"
checksum: 59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
Expand Down Expand Up @@ -5022,6 +5168,15 @@ __metadata:
languageName: node
linkType: hard

"uglify-js@npm:^3.1.4":
version: 3.17.4
resolution: "uglify-js@npm:3.17.4"
bin:
uglifyjs: bin/uglifyjs
checksum: 4c0b800e0ff192079d2c3ce8414fd3b656a570028c7c79af5c29c53d5c532b68bbcae4ad47307f89c2ee124d11826fff7a136b59d5c5bb18422bcdf5568afe1e
languageName: node
linkType: hard

"uid@npm:2.0.2":
version: 2.0.2
resolution: "uid@npm:2.0.2"
Expand Down Expand Up @@ -5235,6 +5390,13 @@ __metadata:
languageName: node
linkType: hard

"wordwrap@npm:^1.0.0":
version: 1.0.0
resolution: "wordwrap@npm:1.0.0"
checksum: 497d40beb2bdb08e6d38754faa17ce20b0bf1306327f80cb777927edb23f461ee1f6bc659b3c3c93f26b08e1cf4b46acc5bae8fda1f0be3b5ab9a1a0211034cd
languageName: node
linkType: hard

"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version: 7.0.0
resolution: "wrap-ansi@npm:7.0.0"
Expand Down

0 comments on commit 534a8fd

Please sign in to comment.