Skip to content

Commit 50504e2

Browse files
Add new swagger generation
1 parent fa521e3 commit 50504e2

6 files changed

Lines changed: 63 additions & 745 deletions

File tree

backend/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
"body-parser": "^1.20.1",
1313
"dotenv": "^16.0.3",
1414
"express": "^4.18.2",
15-
"express-oas-generator": "^1.0.46",
1615
"jest": "^29.3.1",
1716
"mongoose": "^6.8.4",
17+
"swagger-autogen": "^2.22.0",
18+
"swagger-ui-express": "^4.6.0",
1819
"ts-jest": "^29.0.5",
1920
"ts-node": "^10.9.1",
2021
"typescript": "^4.9.4"
@@ -23,6 +24,7 @@
2324
"start": "ts-node -r dotenv/config src/index.ts",
2425
"dev": "nodemon -r dotenv/config src/index.ts",
2526
"build": "tsc",
26-
"test": "jest"
27+
"test": "jest",
28+
"swagger": "ts-node -r dotenv/config src/swagger.ts"
2729
}
2830
}

backend/src/index.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,9 @@ import express from "express";
22
import bodyParser from "body-parser";
33
import userRouter from "./users/views";
44
import customerRouter from "./customers/views";
5-
import expressOasGenerator from "express-oas-generator";
65
import { dbConnect } from "./database";
76

87
const app = express();
9-
expressOasGenerator.handleResponses(app, {
10-
specOutputPath: "swagger.json",
11-
specOutputFileBehavior: "merge",
12-
swaggerDocumentOptions: undefined,
13-
});
148

159
// Middleware to parse json request bodies
1610
app.use(bodyParser.json());
@@ -32,8 +26,6 @@ app.post("/", (req, res) => {
3226
res.send(req.body);
3327
});
3428

35-
expressOasGenerator.handleRequests();
36-
3729
app.listen(process.env.PORT || 3000, async () => {
3830
console.log("✅ Server is up and running");
3931
await dbConnect();

backend/src/swagger.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import swaggerAutogen from "swagger-autogen";
2+
3+
const doc = {
4+
info: {
5+
version: "1.0.0",
6+
title: "My API",
7+
description:
8+
"Documentation automatically generated by the <b>swagger-autogen</b> module.",
9+
},
10+
host: "localhost:3000",
11+
basePath: "/",
12+
schemes: ["http", "https"],
13+
consumes: ["application/json"],
14+
produces: ["application/json"],
15+
tags: [
16+
{
17+
name: "User",
18+
description: "Endpoints",
19+
},
20+
],
21+
securityDefinitions: {
22+
apiKeyAuth: {
23+
type: "apiKey",
24+
in: "header", // can be "header", "query" or "cookie"
25+
name: "X-API-KEY", // name of the header, query parameter or cookie
26+
description: "any description...",
27+
},
28+
},
29+
};
30+
31+
const outputFile = "../api-spec.json";
32+
const endpointsFiles = ["./index.ts"];
33+
34+
swaggerAutogen()(outputFile, endpointsFiles, doc);

backend/swagger.json

Lines changed: 0 additions & 179 deletions
This file was deleted.

0 commit comments

Comments
 (0)