mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-09-14 19:02:35 +00:00
39 lines
913 B
JavaScript
39 lines
913 B
JavaScript
import express from "express";
|
|
import PACKAGE from "../package.json" with { type: "json" };
|
|
import { getCompiledSchema } from "../schema/index.js";
|
|
|
|
const router = express.Router({
|
|
caseSensitive: true,
|
|
strict: true,
|
|
mergeParams: true,
|
|
});
|
|
|
|
router
|
|
.route("/")
|
|
.options((_, res) => {
|
|
res.sendStatus(204);
|
|
})
|
|
|
|
/**
|
|
* GET /schema
|
|
*/
|
|
.get(async (req, res) => {
|
|
const swaggerJSON = await getCompiledSchema();
|
|
|
|
let proto = req.protocol;
|
|
if (typeof req.headers["x-forwarded-proto"] !== "undefined" && req.headers["x-forwarded-proto"]) {
|
|
proto = req.headers["x-forwarded-proto"];
|
|
}
|
|
|
|
let origin = `${proto}://${req.hostname}`;
|
|
if (typeof req.headers.origin !== "undefined" && req.headers.origin) {
|
|
origin = req.headers.origin;
|
|
}
|
|
|
|
swaggerJSON.info.version = PACKAGE.version;
|
|
swaggerJSON.servers[0].url = `${origin}/api`;
|
|
res.status(200).send(swaggerJSON);
|
|
});
|
|
|
|
export default router;
|