Notes/apps/server/src/routes/api_docs.ts

31 lines
1.0 KiB
TypeScript
Raw Normal View History

2025-03-06 23:21:47 +01:00
import type { Application } from "express";
import swaggerUi from "swagger-ui-express";
2025-04-25 13:26:08 +03:00
import { join } from "path";
import yaml from "js-yaml";
2025-02-10 16:03:01 +00:00
import type { JsonObject } from "swagger-ui-express";
import { readFileSync } from "fs";
2025-04-25 13:26:08 +03:00
import { RESOURCE_DIR } from "../services/resource_dir";
export default function register(app: Application) {
2025-04-25 13:26:08 +03:00
const etapiDocument = yaml.load(readFileSync(join(RESOURCE_DIR, "etapi.openapi.yaml"), "utf8")) as JsonObject;
const apiDocument = JSON.parse(readFileSync(join(RESOURCE_DIR, "openapi.json"), "utf-8"));
2025-02-15 00:25:23 +02:00
app.use(
"/etapi/docs/",
swaggerUi.serveFiles(etapiDocument),
swaggerUi.setup(etapiDocument, {
explorer: true,
2025-02-09 22:17:31 +00:00
customSiteTitle: "TriliumNext ETAPI Documentation"
})
);
2025-02-15 00:25:23 +02:00
app.use(
"/api/docs/",
swaggerUi.serveFiles(apiDocument),
swaggerUi.setup(apiDocument, {
explorer: true,
customSiteTitle: "TriliumNext Internal API Documentation"
})
);
}