36 lines
986 B
JavaScript
36 lines
986 B
JavaScript
const express = require("express");
|
|
const cors = require("cors");
|
|
const swaggerUi = require("swagger-ui-express");
|
|
|
|
const tileRoutes = require("./routes/tiles");
|
|
const rasterTileRoutes = require("./routes/rasterTiles");
|
|
const geoRoutes = require("./routes/geometries");
|
|
const entityRoutes = require("./routes/entities");
|
|
const { openApiSpec } = require("./swagger");
|
|
|
|
const app = express();
|
|
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// serve MBTiles and geometry CRUD
|
|
app.use("/tiles", tileRoutes);
|
|
app.use("/raster-tiles", rasterTileRoutes);
|
|
app.use("/geometries", geoRoutes);
|
|
app.use("/entities", entityRoutes);
|
|
app.use("/docs", swaggerUi.serve, swaggerUi.setup(openApiSpec, {
|
|
explorer: true,
|
|
}));
|
|
app.get("/docs.json", (req, res) => {
|
|
res.json(openApiSpec);
|
|
});
|
|
|
|
app.get("/", (req, res) => {
|
|
res.send("GIS server running");
|
|
});
|
|
|
|
app.listen(3000, () => {
|
|
console.log("🚀 http://localhost:3000");
|
|
console.log("📘 Swagger UI: http://localhost:3000/docs");
|
|
});
|