feat: swagger

This commit is contained in:
Artemy 2023-08-16 10:36:04 +03:00
parent 7011594d12
commit 4c7571bcfe
3 changed files with 56 additions and 0 deletions

42
package-lock.json generated
View File

@ -10,6 +10,7 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fastify/static": "^6.10.2", "@fastify/static": "^6.10.2",
"@fastify/swagger": "^8.8.0",
"@fastify/view": "^8.0.0", "@fastify/view": "^8.0.0",
"@mozilla/readability": "^0.4.4", "@mozilla/readability": "^0.4.4",
"axios": "^1.4.0", "axios": "^1.4.0",
@ -211,6 +212,18 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/@fastify/swagger": {
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.8.0.tgz",
"integrity": "sha512-tYI2lbItb4yg9FhQj+leK6DdIBICLbXkSR2vZjo117ygHyYQLxw2v0ere/d2PtDmYAx7SOJzxvg3w6y0Sxc3iw==",
"dependencies": {
"fastify-plugin": "^4.0.0",
"json-schema-resolver": "^2.0.0",
"openapi-types": "^12.0.0",
"rfdc": "^1.3.0",
"yaml": "^2.2.2"
}
},
"node_modules/@fastify/view": { "node_modules/@fastify/view": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@fastify/view/-/view-8.0.0.tgz", "resolved": "https://registry.npmjs.org/@fastify/view/-/view-8.0.0.tgz",
@ -2091,6 +2104,22 @@
} }
} }
}, },
"node_modules/json-schema-resolver": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/json-schema-resolver/-/json-schema-resolver-2.0.0.tgz",
"integrity": "sha512-pJ4XLQP4Q9HTxl6RVDLJ8Cyh1uitSs0CzDBAz1uoJ4sRD/Bk7cFSXL1FUXDW3zJ7YnfliJx6eu8Jn283bpZ4Yg==",
"dependencies": {
"debug": "^4.1.1",
"rfdc": "^1.1.4",
"uri-js": "^4.2.2"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/Eomm/json-schema-resolver?sponsor=1"
}
},
"node_modules/json-schema-traverse": { "node_modules/json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"dev": true, "dev": true,
@ -2304,6 +2333,11 @@
"wrappy": "1" "wrappy": "1"
} }
}, },
"node_modules/openapi-types": {
"version": "12.1.3",
"resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
"integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="
},
"node_modules/optionator": { "node_modules/optionator": {
"version": "0.9.3", "version": "0.9.3",
"dev": true, "dev": true,
@ -3285,6 +3319,14 @@
"version": "4.0.0", "version": "4.0.0",
"license": "ISC" "license": "ISC"
}, },
"node_modules/yaml": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
"integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
"engines": {
"node": ">= 14"
}
},
"node_modules/yocto-queue": { "node_modules/yocto-queue": {
"version": "0.1.0", "version": "0.1.0",
"license": "MIT", "license": "MIT",

View File

@ -6,6 +6,7 @@
"main": "dist/app.js", "main": "dist/app.js",
"dependencies": { "dependencies": {
"@fastify/static": "^6.10.2", "@fastify/static": "^6.10.2",
"@fastify/swagger": "^8.8.0",
"@fastify/view": "^8.0.0", "@fastify/view": "^8.0.0",
"@mozilla/readability": "^0.4.4", "@mozilla/readability": "^0.4.4",
"axios": "^1.4.0", "axios": "^1.4.0",

View File

@ -6,6 +6,7 @@ import path from "path";
import Fastify from "fastify"; import Fastify from "fastify";
import fastifyStatic from "@fastify/static"; import fastifyStatic from "@fastify/static";
import fastifyView from "@fastify/view"; import fastifyView from "@fastify/view";
import fastifySwagger from "@fastify/swagger";
import ejs from "ejs"; import ejs from "ejs";
import getRoute from "./routes/get"; import getRoute from "./routes/get";
@ -36,6 +37,18 @@ class App {
}, },
}); });
await fastify.register(fastifySwagger, {
swagger: {
info: {
title: "Dottxt",
version: "1.0.0",
},
externalDocs: {
url: "https://github.com/dottxt/dottxt",
},
},
});
fastify.register(indexRoute); fastify.register(indexRoute);
fastify.register(getRoute); fastify.register(getRoute);
fastify.register(parseRoute); fastify.register(parseRoute);