mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-04 22:56:20 +08:00
add Swagger UI endpoint and add to router
This commit is contained in:
parent
72fe367988
commit
18f5f1b759
26
src/routes/api_docs.ts
Normal file
26
src/routes/api_docs.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import type { Router } from "express";
|
||||||
|
import swaggerUi from "swagger-ui-express";
|
||||||
|
import { readFileSync } from "fs";
|
||||||
|
import { fileURLToPath } from "url";
|
||||||
|
import { dirname, join } from "path";
|
||||||
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
const swaggerDocument = yaml.load(
|
||||||
|
readFileSync(join(__dirname, "../etapi/etapi.openapi.yaml"), "utf8")
|
||||||
|
) as object;
|
||||||
|
|
||||||
|
function register(router: Router) {
|
||||||
|
router.use(
|
||||||
|
"/api-docs",
|
||||||
|
swaggerUi.serve,
|
||||||
|
swaggerUi.setup(swaggerDocument, {
|
||||||
|
explorer: true,
|
||||||
|
customSiteTitle: "Trilium ETAPI Documentation"
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
register
|
||||||
|
};
|
@ -71,7 +71,7 @@ import etapiSpecialNoteRoutes from "../etapi/special_notes.js";
|
|||||||
import etapiSpecRoute from "../etapi/spec.js";
|
import etapiSpecRoute from "../etapi/spec.js";
|
||||||
import etapiBackupRoute from "../etapi/backup.js";
|
import etapiBackupRoute from "../etapi/backup.js";
|
||||||
|
|
||||||
|
import apiDocsRoute from "./api_docs.js";
|
||||||
|
|
||||||
const MAX_ALLOWED_FILE_SIZE_MB = 250;
|
const MAX_ALLOWED_FILE_SIZE_MB = 250;
|
||||||
const GET = "get",
|
const GET = "get",
|
||||||
@ -369,6 +369,9 @@ function register(app: express.Application) {
|
|||||||
etapiSpecRoute.register(router);
|
etapiSpecRoute.register(router);
|
||||||
etapiBackupRoute.register(router);
|
etapiBackupRoute.register(router);
|
||||||
|
|
||||||
|
// API Documentation
|
||||||
|
apiDocsRoute.register(app);
|
||||||
|
|
||||||
app.use("", router);
|
app.use("", router);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user