mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-01 20:32:19 +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 etapiBackupRoute from "../etapi/backup.js";
|
||||
|
||||
|
||||
import apiDocsRoute from "./api_docs.js";
|
||||
|
||||
const MAX_ALLOWED_FILE_SIZE_MB = 250;
|
||||
const GET = "get",
|
||||
@ -369,6 +369,9 @@ function register(app: express.Application) {
|
||||
etapiSpecRoute.register(router);
|
||||
etapiBackupRoute.register(router);
|
||||
|
||||
// API Documentation
|
||||
apiDocsRoute.register(app);
|
||||
|
||||
app.use("", router);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user